7

JVM はSIGTERM および同様のシグナルをシャットダウン フックに変換しますが、多くのサービス シャットダウン スクリプトは TCP ポートを使用してシャットダウンを開始します。(Tomcat のシャットダウン ポート、Java Service Wrapper、JBoss の管理インターフェースなど)

そのため、Play! フレームワークはシャットダウン フックを使用してサービス ライフサイクルを管理しており、によって生成された起動スクリプトplay distは、シグナルが JVM の PID に送信されることを前提としています。

シグナルはプラットフォームに依存し、TCP ポートを使用することはクロスプラットフォームの方法でサービスを管理するためのシンプルで拡張可能な方法であることを知っていますが、それがどれほど安全であり、依存するときにどのようなリスクを考慮する必要があるかを知りたいです。サービスをシャットダウンするための主要な方法として、SIGTERM およびシャットダウン フックを使用します。

4

1 に答える 1

2

Java サービスが適切な終了のために ShutdownHooks を賢く使用している限り、SIGTERM を JVM プロセスに送信しても問題はありません。たとえば、大規模な高負荷の本番システム (80 の異なる Java アプリケーションを実行する 5000 以上のサーバー) でアプリケーションのシャットダウンを開始するための主要な方法として SIGTERM を使用します。

于 2014-07-14T11:49:40.783 に答える