GNU/Linux >> Linux の 問題 >  >> Linux

メインプロセスがsystemdから開始されたときに子プロセスをデタッチできません

解決策は追加することです

KillMode=process

サービスブロックへ。デフォルト値は control-group です これは、systemd がすべての子プロセスをクリーンアップすることを意味します。

man systemd.kill から

<ブロック引用>

KillMode=このユニットのプロセスを強制終了する方法を指定します。制御グループ、プロセス、混合、なしのいずれか。

control-group に設定すると、このユニットのコントロール グループ内のすべての残りのプロセスは、ユニットの停止時に強制終了されます (サービスの場合:ExecStop=で構成された stop コマンドの実行後)。 process に設定すると、メイン プロセス自体のみが強制終了されます。 mixed に設定すると、SIGTERM シグナル (以下を参照) がメイン プロセスに送信され、その後の SIGKILL シグナル (以下を参照) がユニットの制御グループの残りのすべてのプロセスに送信されます。 none に設定すると、プロセスは強制終了されません。この場合、ユニットの停止時に停止コマンドのみが実行されますが、それ以外のプロセスは強制終了されません。停止後に生き残っているプロセスは、その制御グループに残され、制御グループは停止後も空でない限り存在し続けます。


Linux
  1. Sigintが親プロセスに送信されたときに子プロセスに伝播されないのはなぜですか?

  2. 子プロセスが親の SIGINT を受け取る

  3. シェルスクリプトでフォークされた子プロセスから PID を取得する方法

  1. systemd サービスを停止する方法

  2. Ctrl + C でプロセスを強制終了できない場合はどうすればよいですか?

  3. 127.0.0.1 を盲目的に信頼できますか?

  1. 以前の端末から nano プロセスを復元できますか?

  2. Linux - プロセスがいつ開始されたかを確認するにはどうすればよいですか?

  3. Ubuntu で ZooKeeper を停止するにはどうすればよいですか?