请问如何防止进程意外终止?
- 0次
- 2021-07-13 07:16:10
- idczone
有个进程每隔四五天就意外终止了,有什么办法可以防止他结束运行?
用一个监控系统监控着,如果发现意外终止直接重启
比如 systemd initd 什么的
systemd、upstart、supervisor托管进程自动重启都可以, 但是我建议你最好打上log看看到底因为什么原因挂的.
supervisor +1
以前的做法写个脚本,放到crontab 中每一分钟执行一次。
脚本内容:(只实现监控部分)
program_count=$(ps -ef |pgrep monitor_process_name)
if [[ $program_count lt 1 ]];
then
执行重新启动的脚本命令,例如可以写个op.sh
/data/svr/op.sh start
fi
有一个更好的思路是 test $(
monit
http://en.wikipedia.org/wiki/Monit
取巧的办法是把这个进程当做某个进程的子进程启动,然后父进程waitpid,子进程挂了就继续起一个
不过你最好查清楚为什么会异常退出。
楼上的解决方案都是保证进程运行,而楼主问的是如何防止进程结束运行。
看log
代码写好点!
systemd 自带 log
找问题呀
敢问为啥意外终止了?
没办法防止,只能让你的进程死掉后,无人为干预重启。
感谢大家的回复。是shadowsocks libev的客户端进程,运行后长则十来天,短则四五天就意外终止了。
shadowsocks libev没那么脆吧 我运行半年了没啥事
我运行的是客户端,不是服务端,我也不知道怎么回事,他会终止运行。
换python版的客户端试试,我用在Debian minimal下运行了一堆很稳定的。
Btw, 服务端用的是libev的。