在后台安全地长时间运行的 Java 进程



我有三个jar文件,它们应该在嵌入式系统的后台永久运行。我实际上是在 ssh 会话中与jamvm -jar program.jar &一起这样做的。但是 jar 文件在后台运行一天后退出,并且具有不可预测的行为。在帖子中 Linux:防止后台进程在关闭 SSH 客户端后停止他们建议nohup command > /dev/null 2>&1 &,但我也有同样的行为。如何永久安全地在后台运行 jar 文件?如何确保 jar 文件退出以再次重新启动它?

Upstart、supervisor 和 systemd 将为您运行一个进程,并在失败时重新启动它们。哪个可用将取决于您的 Linux 发行版及其年龄。可能还有其他类似的服务。

从 systemd 文档中:

重启=

配置在服务

进程退出、终止或达到超时时是否应重新启动服务。服务进程可能是主要的服务进程,但它也可能是使用 ExecStartPre=、ExecStartPost=、ExecStop=、ExecStopPost= 或 ExecReload= 指定的进程之一。当进程的死亡是 systemd 操作的结果(例如服务停止或重新启动)时,服务将不会重新启动。超时包括错过监视器"保持活动状态 ping"截止时间以及服务启动、重新加载和停止操作超时。

相关内容

  • 没有找到相关文章