Arquivo de unidade do Systemd para falha do uWSGI

1

Usando o Flask, o NGINX e o uWSGI, configurei com êxito a configuração de um aplicativo para o qual envio e recebo mensagens de texto pelo Twilio. Tudo está funcionando perfeitamente, exceto que está sendo executado em minha conta de usuário pessoal (chamada trinitrogen). Eu gostaria de movê-lo para fugir de uma conta de usuário diferente (aplicativos nomeados), mas estou tendo problemas com o arquivo de unidade do systemd. O grande ponto crucial de minhas dificuldades é que não consigo encontrar um bom registro de qualquer erro, então não sei por onde começar

Primeiro, baseei meu trabalho em este tutorial teve sucesso principalmente com o que foi compartilhado

Eu criei o novo usuário e o adicionei à roda

[apps@argon ~]$ groups
apps wheel

Clonou o repo no diretório home dos apps, configurou um virtualenv chamado venv dentro do diretório, instalou todos os pacotes python, testou com sucesso o uwsgi na linha de comando

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

Funciona muito bem. Eu segui para a configuração do arquivo systemd, mas é aqui que eu bati na parede. Abaixo está o arquivo atual, junto com a saída depois de tentar reiniciar o serviço.

[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]$

Abaixo está um exemplo do arquivo TwilioApp.service que funciona perfeitamente sob minha conta trinitrogen. Observe que a única coisa que eu mudei no User e nos 3 diretórios

[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

Abaixo está o TwilioApp.ini que é usado para o uwsgi, é exatamente o mesmo entre a versão que eu rodei com sucesso em minha conta "trinitrogen" e minha conta "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
    
por Trinitrogen 14.04.2017 / 23:50

0 respostas