systemctlまたはinitを介してサービスを再起動するとどうなりますか?

systemctlまたはinitを介してサービスを再起動するとどうなりますか?

再起動中にプロセスのライフサイクルを理解しようとしています。

たとえば、

再起動コマンドを実行すると

  1. プロセスIDが終了します
  2. 記述子で開いているすべてのファイルを削除またはフラッシュします。
  3. TCPまたはUnixソケットを閉じる
  4. その後、起動します - すべての実際のコマンドが実行されます。

誰もがこれをより良い方法で理解するのに役立ちますか?

答え1

SIGTERMプロセスが終了すると予想されると、信号はサーバープロセスに送信されます。信号を捕捉して正常に終了するために必要なすべてのタスクを実行することは、プロセス自体に依存します。つまり、プロセス自体がファイルのフラッシュ、開いているネットワーク接続のクローズなどを担当する必要があります。

プロセスがタイムアウト内に終了しない場合は、シグナルを介して強制的に終了しますSIGKILL。タイムアウトのデフォルト値は90秒です。

関連情報