systemd
我知道新版 Ubuntu比更受欢迎upstart
,但是当我从 Ubuntu 14.04 迁移我的网站(python
++ nginx
)时uwsgi
,upstart 脚本在系统启动阶段启动失败。
upstart 脚本与uwsgi 文档:
# simple uWSGI script
description "uwsgi tiny instance"
start on runlevel [2345]
stop on runlevel [06]
respawn
exec uwsgi --master --processes 4 --die-on-term --socket :3031 --wsgi-file /var/www/myapp.wsgi
我确信 nginx 服务器配置正确,并且 upstart 脚本中的命令(如下所示)可以在 shell 中正常提供网站服务(我可以从浏览器打开网页)。
uwsgi --master --processes 4 --die-on-term --socket :3031 --wsgi-file /var/www/myapp.wsgi
我的问题是如何让 upstart 脚本在 Ubuntu 16.04 中正常工作。
答案1
我将创建一个 systemd 服务/etc/systemd/system/uwsgi.service
。并禁用 upstart 脚本。
也许您需要稍微调整一下服务脚本,比如完整路径,user
以及After
:
[Unit]
Description=uwsgi
After=network.target
[Service]
PIDFile=/run/uwsgi.pid
ExecStart=/usr/bin/uwsgi --master --processes 4 --die-on-term --socket :3031 --wsgi-file /var/www/myapp.wsgi
User=www-data
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target