Debian系统下Gunicorn服务无法停止,杀死进程后自动重启求解决
解决Debian下Gunicorn进程杀不死自动重启的问题
检查Gunicorn是否由系统服务管理器托管(如systemd)
直接杀死进程后自动重启,大概率是因为Gunicorn被systemd这类服务管理器接管了,正确的停止方式是用服务管理命令:- 先查找对应的Gunicorn服务名:
systemctl list-units | grep gunicorn - 停止服务:
sudo systemctl stop [找到的服务名].service - 若要彻底禁止自动重启:
sudo systemctl disable --now [找到的服务名].service
- 先查找对应的Gunicorn服务名:
查看Gunicorn进程树,定位父进程
用ps auxf | grep gunicorn输出进程树,找到Gunicorn主进程的父进程ID(PPID)。如果父进程是systemd、supervisor等进程管理工具,仅杀死子进程会被父进程重启,需要停止对应的管理服务:- 若是supervisor托管,执行:
supervisorctl stop gunicorn
- 若是supervisor托管,执行:
查找Gunicorn的PID文件
若Gunicorn以守护进程模式启动(启动命令含--daemon参数),通常会生成PID文件,直接通过PID文件终止主进程:- 查找PID文件位置:
find / -name "gunicorn.pid" 2>/dev/null - 终止进程:
kill $(cat /path/to/gunicorn.pid)
- 查找PID文件位置:
确认端口占用的真实进程
用ss -tulnp | grep :8000查看8000端口的占用进程,确认是否为Gunicorn主进程,避免误杀子进程(主进程会重启子进程)。强制停止组合操作
如果上述方法无效,可先强制杀死所有Gunicorn进程,再停止对应的管理服务:sudo pkill -9 gunicorn sudo systemctl stop [Gunicorn服务名].service
内容的提问来源于stack exchange,提问作者Florian virginie
相关产品推荐
相关产品推荐

