Назад | Перейти на главную страницу

Файл модуля Systemd для сбоя uWSGI

Используя Flask, NGINX и uWSGI, я успешно настроил приложение, которое я отправляю и получаю текстовые сообщения через Twilio. Все работает отлично, за исключением того, что он работает под моей личной учетной записью (с именем trinitrogen). Я хотел бы переместить его для работы с другой учетной записью пользователя (с именем apps), но у меня проблемы с файлом модуля systemd. Суть моих трудностей в том, что я даже не могу найти хороший журнал ошибок, поэтому я не уверен, с чего начать.

Во-первых, я основывал свою работу этот учебник в основном имел успех именно в том, что было поделено

Я создал нового пользователя и добавил его в колесо

[apps@argon ~]$ groups
apps wheel

Клонировал репо в домашний каталог приложений, настроил virtualenv с именем venv внутри каталога, установил все пакеты python, успешно протестировал uwsgi в командной строке

[apps@argon PowderMonitor]$ uwsgi --socket 10.0.0.221:8080 --protocol=http -w wsgi:app

Отлично работает. Я перешел к настройке файла systemd, но здесь я наткнулся на стену. Ниже показан текущий файл и результат после попытки перезапуска службы.

[apps@argon PowderMonitor]$ cat /etc/systemd/system/TwilioApp.service
[Unit]
Description=uWSGI - TwilioApp - apps acccount
After=network.target

[Service]
User=apps
Group=nginx
WorkingDirectory=/home/apps/PowderMonitor
Environment="PATH=/home/apps/PowderMonitor/venv/bin"
ExecStart=/home/apps/PowderMonitor/venv/bin/uwsgi --ini TwilioApp.ini

[Install]
WantedBy=multi-user.target
[apps@argon PowderMonitor]$ sudo systemctl restart TwilioApp.service
[apps@argon PowderMonitor]$ sudo systemctl status TwilioApp.service -l
● TwilioApp.service - uWSGI - TwilioApp - apps acccount
   Loaded: loaded (/etc/systemd/system/TwilioApp.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2017-04-14 16:35:52 CDT; 3s ago
  Process: 3420 ExecStart=/home/apps/PowderMonitor/venv/bin/uwsgi --ini TwilioApp.ini (code=exited, status=1/FAILURE)
 Main PID: 3420 (code=exited, status=1/FAILURE)

Apr 14 16:35:52 argon.xxx systemd[1]: Started uWSGI - TwilioApp - apps acccount.
Apr 14 16:35:52 argon.xxx systemd[1]: Starting uWSGI - TwilioApp - apps acccount...
Apr 14 16:35:52 argon.xxx systemd[1]: TwilioApp.service: main process exited, code=exited, status=1/FAILURE
Apr 14 16:35:52 argon.xxx systemd[1]: Unit TwilioApp.service entered failed state.
Apr 14 16:35:52 argon.xxx systemd[1]: TwilioApp.service failed.
[apps@argon PowderMonitor]$

Ниже приведен пример файла TwilioApp.service, который отлично работает под моей учетной записью trinitrogen. Обратите внимание, что единственное, что я изменил в User, и в трех каталогах

[trinitrogen@argon PowderMonitor]$ cat TwilioApp.service.example
[Unit]
Description=uWSGI instance to serve TwilioApp
After=network.target

[Service]
User=trinitrogen
Group=nginx
WorkingDirectory=/home/trinitrogen/Python/PowderMonitor
Environment="PATH=/home/trinitrogen/Python/PowderMonitor/venv/bin"
ExecStart=/home/trinitrogen/Python/PowderMonitor/venv/bin/uwsgi --ini TwilioApp.ini

[Install]
WantedBy=multi-user.target

Ниже приведен файл TwilioApp.ini, который используется для uwsgi, он точно такой же, как для версии, которую я успешно запустил под своей учетной записью «trinitrogen», и моей учетной записи «apps».

[apps@argon PowderMonitor]$ cat TwilioApp.ini
[uwsgi]
module = wsgi:app

master = true
processes = 5

socket = TwilioApp.sock
chmod-socket = 664
vacuum = true
#location of log files
logto = /var/log/uwsgi/TwilioApp.log
die-on-term = true