【问题标题】:Safely long running java process in background在后台安全地长时间运行java进程
【发布时间】:2016-11-17 19:37:25
【问题描述】:

我有三个 jar 文件,它们应该在嵌入式系统的后台永远运行。 我实际上是通过 ssh 会话使用 jamvm -jar program.jar & 来执行此操作的。 但是 jar 文件在后台运行一天后退出并且具有不可预测的行为。 在帖子Linux: Prevent a background process from being stopped after closing SSH client 他们建议nohup command > /dev/null 2>&1 &,但我也有同样的行为。 我如何才能永远在后台安全地运行 jar 文件? 如何确保 jar 文件退出以重新启动它?

【问题讨论】:

  • 使用 Java Service Wrapper 制作一个合适的守护进程。

标签: java linux ssh jamvm


【解决方案1】:

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

来自 systemd 文档:

重启=

配置当服务进程退出、被杀死或达到超时时是否应该重新启动服务。服务进程可能是主服务进程,但也可能是使用 ExecStartPre=、ExecStartPost=、ExecStop=、ExecStopPost= 或 ExecReload= 指定的进程之一。当进程死亡是由于 systemd 操作(例如服务停止或重新启动)而导致的,服务将不会重新启动。超时包括错过看门狗“keep-alive ping”最后期限以及服务启动、重新加载和停止操作超时。

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 2023-03-11
    • 2018-02-16
    • 1970-01-01
    相关资源
    最近更新 更多