Я пытаюсь настроить gunicorn сервис. Содержание/etc/init/gunicorn.conf - что-то вроде этого:
start on runlevel [2345]
stop on runlevel [!2345]
respawn
setuid nero
set gid www-data
chdir /path/to/webapp
exec virtual_env/bin/gunicorn --workers 3 --bind unix:/path/to/webapp/project.sock project.wsgi:application
Если я запускаю сервисное использование sudo service gunicorn start
, никакой сокет не создается, и никакой процесс gunicorn не является икрой (я не могу найти ни один в системном мониторе).
Однако, если я выполняю последнюю строку конфигурационного файла сам в терминале (отбрасывание exec
слово), это действительно работает.
Действительно ли это - проблема разрешения? Я действительно устанавливал полномочия файла всех файлов в пути/к/веб-приложении к пользователю nero и www-данным группы.
Я выяснил то, чем проблема была самостоятельно. Вещи, кажется, изменились в человечности 16.04. Я должен был создать gunicorn.service
файл в /etc/systemd/system/
.
[Единица]
демон Description=gunicorn
[сервис] After=network.target
User=nero
Group=www-data WorkingDirectory =/path/to/webapp ExecStart =/path/to/webapp/virtual_env/bin/gunicorn - рабочие 3 - связывают unix:/path/to/webapp/project.sock проект wsgi:application[Установка]
WantedBy=multi-user.target
, который сервис может теперь быть запущен с помощью sudo systemctl start gunicorn
.