小编z24*_*242的帖子

systemd 控制的服务如何区分关机和重启?

我有一个在 RHEL7 上运行并由 systemd 启动的 Linux 进程。当进程停止时,我需要知道它是否因为系统关闭或重新启动而停止,并且我需要能够区分这两者。

以前,在 RHEL6 上的 init 下,我可以通过查看用于调用我的 init 脚本的路径名来执行此操作,并相应地向进程发送不同的信号,即:

case "$0" in 
    *rc0\.d*|*rc1\.d*)     #shutdown
    sig=USR1
    ;;
    *rc6\.d*)              #reboot
    sig=USR2
    ;;
    *)
    sig=TERM
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

这不适用于 systemd...虽然我的 init 脚本在正确的时间被调用,但 $0 始终相同(/etc/init.d/scriptname)。

systemd 下是否有某种方法可以知道您是否因系统关闭或重新启动而被调用?我很高兴摆脱 init 脚本并将其配置为 systemd 目标,但是从文档中我看不到做我想做的事情的方法。

linux rhel systemd

5
推荐指数
1
解决办法
5085
查看次数

标签 统计

linux ×1

rhel ×1

systemd ×1