我运行一个进程,它有时会崩溃,有时会冻结。我使用 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 的文件中。