Python中supervisor守护的进程被kill后如何自动重启?
1.supervisord -c /usr/local/etc/supervisord.conf
[program:hello]
command=php /home/test.php
autostart=true
autorestart=true
2.ps -ef|grep php 是可以看到已经在执行了
3.kill -9 将 php /home/test.php 这个进程杀掉后,就必须我手动重启 supervisord 了
我的疑问:我记得以前可以直接 kill 掉之后,马上就会被 supervisor 重新拉起来,我这个怎么不能自己起来呢?
Python中supervisor守护的进程被kill后如何自动重启?
4 回复
看日志,
supervisorctl
supervisor本身就有自动重启机制,关键在于配置里的autorestart参数。如果进程被kill后没重启,检查你的配置文件。
这是典型的supervisor配置示例:
[program:your_app]
command=/path/to/your/app.py
directory=/path/to/working/dir
autorestart=true
startretries=3
stopsignal=TERM
stopwaitsecs=10
关键配置说明:
autorestart=true:进程退出时自动重启startretries=3:启动失败重试次数stopsignal=TERM:停止信号,确保supervisor能正常停止进程
如果配置正确但还不重启,检查:
- 进程是否被
kill -9杀掉?supervisor无法捕获SIGKILL - 查看supervisor日志:
sudo tail -f /var/log/supervisor/supervisord.log - 重新加载配置:
sudo supervisorctl reread && sudo supervisorctl update
确保配置正确,supervisor会处理好重启。
配置里加上 auto_restart=true
无视我吧,没好好审题

