背景生产环境中采用nginx + uwsgi + django 来部署web服务,这里须要实现uwsgi的启动和中止,简单的处理方式能够直接在命令行中启动和kill掉uwsgi服务,但为了更安全、方便的管理uwsgi服务,配置uwsgi到systemd服务中,同时实现开启自启的功能;
另,鉴于supervisor不支持python3,没采用supervisor来管理uwsgi服务;python
具体配置方法以下:nginx
step1. 建立配置文件web
/etc/systemd/system/server_uwsgi.service
step2. 填入如下内容django
[Unit] Description=HTTP Interface Server After=syslog.target [Service] KillSignal=SIGQUIT ExecStart=/usr/bin/uwsgi --ini /path/uwsgi.ini Restart=always Type=notify NotifyAccess=all StandardError=syslog [Install] WantedBy=multi-user.target
step3. 将该服务加入到systemd中安全
systemctl enable /etc/systemd/system/server_uwsgi.service
而后就能够经过systemctl来控制服务的启停命令行
systemctl stop server_uwsgi.service 关闭uwsgi服务
systemctl start server_uwsgi.service 开启uwsgi服务
systemctl restart server_uwsgi.service 重启uwsgi服务rest
注意事项:code
若是uwsgi配置文件中配置了 daemonize=/path/uwsgi.log (uwsgi服务以守护进程运行) 会致使sytemctl启动时屡次重启而致使启动失败 需改成 logto=/path/uwsgi.log