uWSGI失败的系统单元文件

使用Flask,NGINX和uWSGI我已经成功安装了一个应用程序,通过Twilio发送和接收文本消息。 一切工作都很完美,只是它在我的个人用户帐户(名为trinitrogen)下运行。 我想移动它来运行一个不同的用户帐户(命名应用程序),但是在systemd单元文件有问题。 我的困难的最大难题是,我什至不能find一个好logging错误,所以我不知道从哪里开始

首先,我基于这个教程所做的工作大部分都取得了成功,正是所分享的内容

我创build了新的用户,并将其添加到车轮

[apps@argon ~]$ groups apps wheel 

将repo克隆到应用程序主目录中,在目录中设置名为venv的virtualenv,安装所有python软件包,在命令行中成功testing了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帐户下完全可以运行。 注意,我在用户和3个目录中改变了唯一的东西

 [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 

下面是用于uwsgi的TwilioApp.ini,它与我在“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