Может ли любая виртуальная среда запустить systemd gunicorn.service для всех virtuenenv?
Если вы не работаете внутри среды, Gunicorn будет установлен во всем мире (т.е. доступен для всей системы). Это не рекомендуется. Всегда выбирайте использование virtualenv. Но если у вас есть несколько virtualenvs, сколько файлов gunicorn.service вам нужно, чтобы запустить gunicorn при запуске системы? Например ниже
WorkingDirectory=/home/myproject...
ExecStart==/home/myproject/myprojectenv/bin/gunicorn...
Может ли какая-либо виртуальная среда запустить ее для всех virtuenenv?
1 ответ
Вы можете использовать экземпляры systemd для этого.
Например, допустим, вы создаете все ваши virtualenvs в одном каталоге (это все равно будет проще).
Затем вы можете написать файл модуля следующим образом:
WorkingDirectory=/home/myproject/%i
ExecStart=/home/myproject/%i/bin/gunicorn ...
% I представляет конкретный экземпляр единицы, для которой не может быть ограничений. Вы ссылаетесь на экземпляр с помощью @
знак, за которым следует имя экземпляра, например:
systemctl enable gunicorn@myprojectenv.service
systemctl start gunicorn@myprojectenv.service
таким образом %i
будет заменен на myprojectenv
, Повторите это для каждого экземпляра, который вы хотите создать.
Дальнейшее чтение: