
我正在嘗試為將部署到 Ubuntu 14.04 伺服器的 Java 應用程式 (JAR) 設計一個優雅的啟動/關閉腳本 (Bash)。我正在尋找一種乾淨的、Linux 和 Ubuntu 友好的方式來啟動伺服器,如下所示:
java -jar myapp.jar <lots off subsequent arguments>
然後,在關閉腳本中,找到 JAR 的 PID,發出 SIGSTOP 以允許應用程式自行正常關閉,最後在 PID 良好且準備就緒時殺死 PID。
我想知道是否upstart
可能是此類用例的良好候選者,如果是,如何?否則,我可以採取哪些其他方法?
答案1
SIGSTOP 暫停進程,且不執行乾淨關閉。請改用 SIGTERM。
這是一個 java 進程的新貴工作草案:
description "my java app"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec java -jar myapp.jar <arguments>
這應該工作得相當好。