web-dev-qa-db-ja.com

systemd stopコマンドの実際の動作方法

「開始」されたときにプロセスを呼び出すsystemdサービスを使用しています(例:$ systemctl start test.service)。設計により、プロセスはループ内にとどまり、「ps」コマンドを使用してプロセスの存在を確認できます。また、systemctl stopコマンドでプロセスが(意図したとおりに)強制終了されることも確認しました。ただし、プロセスが強制終了される前に、プロセス内から安全なシャットダウン操作を実行する必要があります。しかし、プロセス内からsystemd停止操作を検出する方法がわかりません。

Systemctl stop test.serviceコマンドはプロセスを強制終了するためにSIGKILLまたはSIGTERMシグナルを送信しますか?プロセス内からsystemctl停止操作を検出するにはどうすればよいですか?

38
user3805417

デフォルトでは、SIGTERMが送信され、90秒待機してからSIGKILLが続きます。

systemdを使用したプロセスの強制終了は、非常にカスタマイズ可能であり、十分に文書化されています。

man systemd.kill をすべて読むことと、ドキュメントとしてすべてのオプションとして ExecStop = in man systemd.service を読むことをお勧めします。

56
Mark Stosberg