我正在尝试为将要部署到 Ubuntu 14.04 服务器的 Java 应用程序 (JAR) 设计一个优雅的启动/关闭脚本 (Bash)。我正在寻找一种干净、Linux 和 Ubuntu 友好的服务器启动方式,如下所示:
java -jar myapp.jar <lots off subsequent arguments>
然后,在关机脚本中,找到 JAR 的 PID,发出 SIGSTOP 以允许应用程序自行正常关机,然后在准备就绪时最终终止 PID。
我想知道upstart
可能是此类用例的良好候选者,如果是,怎么办?否则,我还可以采取哪些其他方法?
答案1
SIGSTOP 会暂停进程,但不会彻底关闭。请使用 SIGTERM。
以下是 Java 进程的 Upstart 作业草稿:
description "my java app"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec java -jar myapp.jar <arguments>
效果应该会很好。