我有一个在 RHEL7 上运行并由 systemd 启动的 Linux 进程。当进程停止时,我需要知道它是否因为系统关闭或重新启动而被停止,并且我需要能够区分这两者。
以前,在 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 目标,但是从文档中我看不到做我想做的事情的方法。