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