
私は、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 プロセスのドラフト アップスタート ジョブです。
description "my java app"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec java -jar myapp.jar <arguments>
それはかなりうまくいくはずです。