LINUX.ORG.RU
ФорумAdmin

Запуск uwsgi, ubuntu 16.04, systemd

 , ,


0

1

Установил новый сервер, поднял ubuntu 16.04, попробовал запустить uwsgi. Как раньше, создал файл

/etc/uwsgi/apps-available/myapp.ini
, создал линк в
/etc/uwsgi/apps-enabled/
и попробовал запустить:
sudo systemctl restart uwsgi
И ничего не работает.
journalctl -u uwsgi.service
выдает вот что:
Stopping LSB: Start/stop uWSGI server instance(s)...
 * Stopping app server(s) uwsgi
   ...done.
Stopped LSB: Start/stop uWSGI server instance(s).
Starting LSB: Start/stop uWSGI server instance(s)...
 * Starting app server(s) uwsgi
   ...done.
В
/var/log/uwsgi
ничего нет. Как понять в чем ошибка? Где искать логи? Я понимаю, как создать отдельный unit для конкретного приложения. Также прочитал http://uwsgi-docs.readthedocs.io/en/latest/Systemd.html. Не могу понять, либо я что-то делаю не так (но не знаю куда смотреть), либо старые способы не работают?


Приведи все к подобному виду(в соотвествии со своими настройками):

Конфиг приложения

[uwsgi]
chdir = /var/lib/myapp
wsgi-file = /var/lib/myapp/app
callable = app

plugin = python

master = true
processes = 3

uid = myuser
gid = mygrp
socket = /run/uwsgi/myapp.socket
chown-socket = nginx:nginx
chmod-socket = 660
vacuum = true

/etc/systemd/system/myapp.socket

[Socket]
ListenStream=/run/uwsgi/myapp.socket
User=myuser

[Install]
WantedBy=sockets.target

/etc/systemd/system/myapp.service

[Unit]
Description=MyAPP
After=netwok.target

[Service]
Type=simple
ExecStart=/sbin/uwsgi --ini /etc/uwsgi/sites/myapp.ini
WorkingDirectory=/var/lib/myapp
KillSignal=SIGQUIT
User=myuser
MemoryLimit=512M
Restart=always

[Install]
WantedBy=multi-user.target

Затем сделай systemctl daemon-reload && systemctl enable myapp.socket

Если хочешь пускать все скопом, то сделай юнит для emperor. Судя по всему в убунте поставляется sysv скрипт, который не работает, лол.

cat /usr/lib/systemd/system/uwsgi.service 
[Unit]
Description=uWSGI Emperor Service
After=syslog.target

[Service]
EnvironmentFile=-/etc/sysconfig/uwsgi
ExecStartPre=/bin/mkdir -p /run/uwsgi
ExecStartPre=/bin/chown uwsgi:uwsgi /run/uwsgi
ExecStart=/usr/sbin/uwsgi --ini /etc/uwsgi.ini
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGINT
Restart=always
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target
Difrex ★★★★ ()
Последнее исправление: Difrex (всего исправлений: 2)
Ответ на: комментарий от Difrex

Прошу прощения, что вмешиваюсь.

ExecStartPre=/bin/mkdir -p /run/uwsgi
ExecStartPre=/bin/chown uwsgi:uwsgi /run/uwsgi

RuntimeDirectory=, RuntimeDirectoryMode=
Takes a list of directory names. If set, one or more directories by the specified names will be created below /run (for system services) or below $XDG_RUNTIME_DIR (for user services) when the unit is started, and removed when the unit is stopped. The directories will have the access mode specified in RuntimeDirectoryMode=, and will be owned by the user and group specified in User= and Group=. Use this to manage one or more runtime directories of the unit and bind their lifetime to the daemon runtime. The specified directory names must be relative, and may not include a «/», i.e. must refer to simple directories to create or remove. This is particularly useful for unprivileged daemons that cannot create runtime directories in /run due to lack of privileges, and to make sure the runtime directory is cleaned up automatically after use. For runtime directories that require more complex or different configuration or lifetime guarantees, please consider using tmpfiles.d(5).

imul ★★★★★ ()
Ответ на: комментарий от Difrex

Надеюсь когда-нибудь мантейнер дочитает документацию до конца. :)

imul ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.