从崩溃中恢复/重新启动 java 守护进程

Ash*_*rma 5 java linux shell

我正在使用自定义的 shell 脚本在 Linux 机器上将 java 应用程序作为守护进程运行。

由于我是java和linux的新手,我想知道应用程序本身是否有可能自行复活(就像重新启动一样)并从应用程序崩溃、未处理的异常或内存不足等情况中恢复。

提前致谢

阿什什·夏尔马

Uri*_*Uri 4

JVM 被设计为在出现不可恢复的错误时终止。您所描述的属于这一类。

但是,您可以轻松编写 shell 脚本或 Python 脚本来检查进程是否处于活动状态,如果进程已死亡,则等待几秒钟并恢复它。作为执行此操作的提示,Unix 命令“pgrep”是您的朋友,因为您可以检查用于启动 JVM 的确切命令行(从而包括启动类文件)。这样,您就可以确定该特定 JVM 实例是否正在运行,并重新启动它。

话虽如此,您可能希望添加一些报告或日志记录功能并检查是否经常,因为很容易认为一切正常,而实际上守护进程每隔几分钟就会终止一次。在复活它之前,请确保你已尽一切努力防止它死亡。