RHEL7 で実行され、systemd によって開始される Linux プロセスがあります。プロセスが停止した場合、システムのシャットダウンまたは再起動が原因でプロセスが停止されているかどうかを知る必要があり、その 2 つを区別できる必要があります。
以前は、RHEL6 の init の下で、init スクリプトの呼び出しに使用されたパス名を調べることでこれを行うことができ、それに応じてプロセスに別のシグナルを送信しました。
case "$0" in
*rc0\.d*|*rc1\.d*) #shutdown
sig=USR1
;;
*rc6\.d*) #reboot
sig=USR2
;;
*)
sig=TERM
;;
esac
これは systemd では機能しません...私の init スクリプトは適切なタイミングで呼び出されますが、$0 は常に同じです (/etc/init.d/scriptname)。
システムのシャットダウンまたは再起動が原因で呼び出されているかどうかを systemd で知る方法はありますか? init スクリプトを削除して、代わりに systemd ターゲットとして構成できることをうれしく思いますが、ドキュメントからは、自分がやりたいことを行う方法がわかりません。