我遇到了一个让我疯狂的问题。我正在尝试创建一个Ubuntu 15.04 Upstart作业,它将启动运行Django应用程序的uWSGI服务器(uWSGI版本2.0.7-debian)。
我已将服务配置为以下内容,并尝试通过发出命令$ sudo service uwsgi start
来启动作业。日志文件中没有输出,没有创建套接字文件,也没有错误。
# file: /etc/init/uwsgi.conf
description "uWSGI server"
start on runlevel [2345]
stop on runlevel [!2345]
exec /usr/bin/uwsgi --ini /srv/configs/uwsgi.ini
service uwsgi status
说
● uwsgi.service - LSB: Start/stop uWSGI server instance(s)
Loaded: loaded (/etc/init.d/uwsgi)
Active: active (exited) since Tue 2015-05-05 09:40:08 EEST; 1s ago
Docs: man:systemd-sysv-generator(8)
Process: 21405 ExecStop=/etc/init.d/uwsgi stop (code=exited, status=0/SUCCESS)
Process: 21460 ExecStart=/etc/init.d/uwsgi start (code=exited, status=0/SUCCESS)
May 05 09:40:08 web-2 systemd[1]: Starting LSB: Start/stop uWSGI server instance(s)...
May 05 09:40:08 web-2 uwsgi[21460]: * Starting app server(s) uwsgi
May 05 09:40:08 web-2 uwsgi[21460]: ...done.
May 05 09:40:08 web-2 systemd[1]: Started LSB: Start/stop uWSGI server instance(s).
uWSGI应用程序配置为
[uwsgi]
uid = www-data
gid = www-data
socket = /srv/sockets/uwsgi.sock
chmod-socket = 666
master = true
processes = 4
enable-threads = true
plugins = python
chdir = /srv/sites/current
module = wsgi:application
virtualenv = /srv/environments/current
logto = /srv/logs/uwsgi.log
logfile-chown = true
touch-reload = /srv/sites/current/wsgi.py
服务启动正常,如果直接启动服务,一切正常,例如通过发出命令:
sudo -u www-data /usr/bin/uwsgi --ini /srv/configs/uwsgi.ini
对于socket目录和日志文件目录,我设置了最宽松的权限。
所以,我很茫然。下一步做什么?
答案 0 :(得分:6)
感谢nmgeeks评论,我开始关注配置uWSGI的其他地方。
尝试移动/srv
/run/uwsgi
目录下我们自己的应用程序相关的所有内容时,uWSGI正在尝试创建PID文件。
您可以在/usr/share/uwsgi/conf/default.ini
找到参考资料。
太糟糕uWSGI在这种情况下不会产生任何错误,这让我感到沮丧一天。
答案 1 :(得分:1)
我只想提供一些额外的细节。在我的情况下,我没有删除任何内容,但由于某些原因,systemd
无法创建/run/uwsgi
目录。所以,我做了echo "/run/uwsgi 0755 www-data www-data -" > /etc/tmpfiles.d/uwsgi.conf
。之后我重新启动了我的VM(我没有找到一种方法来应用这些更改而不重新启动)并且uwsgi开始工作!
是的,在这种情况下,uWSGI不会产生任何错误,这太糟糕了。