systemd 管理uwsgi

为什么使用systemd

systemd是系统自带的服务管理工具,无需安装,方便使用

使用systemd管理uwsgi

创建uwsgi.service文件 内容如下:

[Unit]
Description=uWSGI Snny service
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/www/wwwroot/snny
ExecStart=/usr/bin/uwsgi --ini uwsgi.ini
ExecStop=/usr/bin/uwsgi --stop uwsgi.pid
ExecReload=/usr/bin/uwsgi --reload uwsgi.pid
Restart=always
KillSignal=SIGQUIT
NotifyAccess=all

[Install]
WantedBy=multi-user.target

将uwsgi.serive 文件放到/etc/systemd/system/目录下

uwsgi.ini配置文件注意事项

你遇到的 Active: failed (Result: start-limit) 问题,大概率是因为 uWSGI 配置中使用了 daemonize 参数,导致 systemd 误判进程已退出,从而反复重启,最终触发 start-limit 限制

打开uwsgi.ini 把

daemonize = /path/to/uwsgi.log

修改为

logto = /path/to/uwsgi.log

注意:不要使用 daemonize,否则 systemd 无法追踪主进程 删掉 daemonize,用 logto,让 uWSGI 在前台运行,systemd 才能正常管理生命周期

运行

systemctl daemon-reload

重新加载配置

启动服务

systemctl start uwsgi

检查服务状态

systemctl status uwsgi

设置开机运行

systemctl enable uwsgi

文档信息

版权声明:可自由转载(请注明转载出处)-非商用-非衍生

发表时间:2025年7月18日 14:13