2016-07-14 42 views
0

我有三個jar文件,應該在嵌入式系統中永遠在後臺運行。 我實際上是通過ssh-session與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進程

+0

使用Java服務包裝器製作適當的守護程序。 – bmargulies

回答

0

Upstart,supervisorsystemd將爲您運行一個進程並在它們失敗時重新啓動它們。哪一個可用取決於你的Linux發行版和它的年齡。也可能還有其他類似的服務。

從systemd文檔:

重啓=

配置是否在服務過程中退出,被殺害的服務將被重新啓動,或者達到超時。服務進程可能是主要的服務進程,但它也可能是ExecStartPre =,ExecStartPost =,ExecStop =,ExecStopPost =或ExecReload =指定的進程之一。當進程死亡是系統操作(例如服務停止或重新啓動)的結果時,服務將不會重新啓動。超時包括缺少看門狗「保持活動ping」的最後期限以及服務啓動,重新加載和停止操作超時。