答案 0 :(得分:2)
不是似是而非,但如果你是一个糟糕的程序员,那么你的观看编程也不会失败;并且,你应该变得更好,这样你就不会有这个问题(因为这个原因) 。也就是说,您最终可能需要以下答案。
但是,如果无法改善,只需定期运行一个cron作业,在'ps'的输出中查找程序的名称。您可以从superuser.com获得答案
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用supervisord
答案 3 :(得分:0)
由于Stackoverflow是一个编程站点,让我概述一下这样一个观察器的实现方式。
首先要知道的是,您的观察者必须自己启动观看的节目。您可以使用fork
和exec
执行此操作。
然后你可以做的就是等待程序退出。您可以根据具体需要使用等待系统调用(即wait
,waitpid
或wait4
)。您还可以捕获SIGCHLD
,以便在您的孩子退出时获得异步通知(然后您需要致电wait
以获取其状态)。
现在您已拥有状态,您可以判断该进程是否因宏信号WIFSIGNALED
而死亡。如果该宏返回true,则程序崩溃并需要重新启动。
答案 4 :(得分:0)
如果你有另一个监控它的任务,它仍然不会继续运行......它重启时仍会有很短的停机时间。
此外,如果您充当网络(或本地)服务器进程,您将失去有关正在进行的请求的任何状态;我希望这没关系(当然你的客户可能有内置的超时和重试)。
最后,如果您的进程在存储任何持久数据的过程中崩溃,我希望它有一个处理半写文件的机制等。
但是,如果你想要它是健壮的,那么所有这些事情都应该是真的,所以你可以安全地使用像supervisord这样的东西。
答案 5 :(得分:0)
我使用Monit来监视我的程序和服务。