どのようにサービスとして動作させたり、アプリケーションをモニタリング(監視)するのか、興味があることでしょう。アプリケーションをセットアップし、他のシステムと統合した後、どのようにシャットダウンするかという質問がよくあります。異なる方法でアプリケーションをシャットダウンしたい理由は多くあります。[CTRL]+[C]キー操作はオプションではありません。ここで、まとめて紹介します。アプリケーションを統合できるよう柔軟に設計されています。コントロールする手法をいくつか構築してきました。自分にとって一番最適な方法はどれか、下記の例をご覧ください。ユーザーであっても、新しい機能の発見になることでしょう。シャットダウンの詳細方法へ入る前に、関連する課題について2、3点をお話しておきます。それらは、アプリケーションをシャットダウンすることについて考えるときに、少なくとも理解しておく必要があります。シャットダウンフックがない場合、アプリケーションはシャットダウンされることを知る手段がありません。登録する方法を示す簡単な例を次に示します。);複数のシャットダウンフックを登録することは可能であり、一般的なことです。通常、各アプリケーションや主要コンポーネントは、必要に応じて独自のシャットダウンフックを登録します。初期化処理の一部として行われるべきです。ほとんどのケースで、シャットダウンフックを登録すれば、あとは登録したことを忘れてしまっても大丈夫です。どこかの時点で、シャットダウンフックを登録解除する必要性がある場合、以下のようにしてください。新しいスレッドとして、それぞれを起動します。そのシャットダウンフックスレッドは、全てが完了するまで、並行して動作します。何か他の動作中のスレッドがあれば停止させて、すぐに終了します。停止しましたシャットダウンフックの1つの問題は、内部的に完了するまでに時間を要するということです。早くシャットダウンするように伝える手段がありません。内部シャットダウンフックを実行します。ラップされたアプリケーションをキレイにシャットダウンするように働きかけ、最後にクリーンアップします。シャットダウンフックはほとんど即座に完了します。シャットダウンフックは、アプリケーションが停止するまで動作します。クラスのメインメソッドが完了した時です。インテグレーション方法3(WrapperListener)実装の場合、WrapperListener.stop()メソッドが完了した時点となります。シャットダウンタイムアウトを定義しています。これは、アプリケーションが不安定な状態で残ってしまうという問題の回避策として行われています。[wrapper.shutdown.timeout]プロパティを使って設定します。シグナル待ちのタイムアウト。単純に、JVM自身が終了するまで待機モードに入ります。登録された全てのシャットダウンフックを並行して起動しますので、覚えておいてください。それは最後のシャットダウンフックが完了して終了するまで待機します。どれか他のシャットダウンフックが完了するまでに時間を要する場合、これもしばらく時間がかかるでしょう。[wrapper.jvm_exit.timeout]プロパティを使って設定します。