Systemd: 子プロセスの切り離し
端末から長時間実行プロセスを開始するとき、たとえメインプロセスが再起動または終了します。これは手動実行では可能ですが、メイン プロセスを systemd サービスとして実行する場合には問題が発生します。
systemd では、デフォルトの子プロセスの終了方法は制御グループを使用するため、すべての子プロセスが終了します。親プロセスの終了時。これを防ぐには、サービス設定で KillMode=process を指定します。
指定された例でこれを実装する方法は次のとおりです:
[Unit] Description=ExecTest [Service] Type=simple ExecStart=/home/snowm/src/exectest/exectest User=snowm KillMode=process [Install] WantedBy=multi-user.target
KillMode=process を設定することで、systemd に次のことを指示します。サービスを終了する場合はメインプロセスのみを終了させてください。これにより、親プロセスが停止した後でも子プロセスは実行を継続できます。
この方法は、メイン プロセスの実行中に作成された子プロセスにのみ影響することに注意してください。事前に作成されたプロセスは、メインプロセスの終了時に終了します。
以上がSystemd サービスが停止した後も子プロセスを実行し続けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。