崩溃时自动重启进程

sas*_*uke 8 unix java reboot process

我有一个运行本机代码的 Java 服务器进程,并且由于本机代码中的问题而导致整个进程崩溃的可能性始终存在。*nix 操作系统是否提供了任何机制,我可以让进程在异常存在时重新生成(退出状态!= 0)?

是否有任何工具/实用程序可以通过同时提供一定级别的控制/配置来为任何类型的过程自动执行此任务?

小智 16

有几个选项 - 你总是可以将它包装在一个简短的 shell 脚本中,如下所示:-

#!/bin/sh

RC=1
while [ $RC -ne 0 ]; do
   ./my-java-app
   RC=$?
done
Run Code Online (Sandbox Code Playgroud)

远非优雅,但可能就足够了。


Gil*_*il' 5

您正在寻找的通常称为流程监控或流程监督。有许多工具可以做到这一点,通常作为不同功能集的一部分。Upstart越来越多地用于 Linux 世界中的系统服务。对于不是由 root 启动的程序,Monit是我尝试的第一件事,但有很多选择。