崩溃时自动重启进程

崩溃时自动重启进程

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

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

答案1

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

#!/bin/sh

RC=1
while [ $RC -ne 0 ]; do
   ./my-java-app
   RC=$?
done

虽然谈不上优雅,但可能足够了。

答案2

你正在寻找的通常称为过程监控或过程监督。有许多工具可以做到这一点,通常作为一组不同的功能的一部分。暴发户在Linux世界中越来越多地用于系统服务。监控对于非由 root 启动的程序,是我首先尝试的,但还有很多其他选择。

相关内容