如何监督一个进程并安排定期重启?

如何监督一个进程并安排定期重启?

我运行一个进程,它有时会崩溃,有时会冻结。我使用 supervise 让它在崩溃时自动重新启动。但是,如果它冻结了,它会一直冻结,直到我回到电脑前。我想要一个可以在崩溃时重新启动它的工具,但也可以配置为定期终止和重新启动,这样如果它冻结了,它就不会冻结超过给定的时间。

谁会建议哪种工具?

谢谢

答案1

如果您愿意,可以使用 cron 来执行此操作...

sudo crontab -e

* /5 * * * pkill -9 <your process name here> ; <your process name here>

每 5 小时将终止并重新启动一次。更多示例...Cron 示例

答案2

我尝试使用监督守护进程工具使用 crontab:

首先,

supervise /fullpath

我使用这个 crontab:

0 23 * * * svc -d /fullpath
2 23 * * * svc -k /fullpath
5 23 * * * svc -u /fullpath

其中 fullpath 是包含启动我的进程的名为 run 的文件的目录。棘手的部分是名为 run 的文件应该以以下内容结尾:

exec java ...

通常,我使用脚本启动应用程序,但如果我将该脚本放在名为 run 的文件中,则在执行 svc 时,它会向脚本发送信号,并且 java 进程继续运行。我创建了该脚本的副本并对其进行了修改,使其使用所有参数输出对 java 的调用,并将其复制到名为 run 的文件中。

相关内容