在 Linux 上运行多个后台 Java 进程

在 Linux 上运行多个后台 Java 进程

我有一个 jar 文件,它会持续运行并对各种事件做出反应。我需要创建此 jar 的多个实例,在启动时向其传递参数,并让其在 shell 会话、重新启动等期间继续运行。我计划编写一个 init.d 脚本,其中包含我需要的每个实例的命令,为每个实例传递适当的参数,并让其在启动时执行。这听起来像是正确的方法吗?

其中一个实例可能会卡住或崩溃,我需要手动进入并重新启动它。我还想知道是否有办法命名创建的每个进程,这样当我查看 top 时,我可以确定哪个进程是哪个?

答案1

初始化脚本听起来不错。不过,你应该通过 /etc/ 中的某些配置对其进行参数化。

您可以在启动每个 Java 进程后获取它们的 PID,然后永久检查所有进程是否仍在运行,如果没有,则重新启动。最好使用应用程序级别监控(取决于进程执行的操作)并据此采取行动。进程仍然存在并不意味着它在做它应该做的事情。

相关内容