我有一个 systemd 服务可以满足我的需求,即在系统关闭时运行脚本。但是,这也会在重新启动时运行,这不是我想要的。
这是服务文件:
[Unit]
Description=Shutdown script
Requires=network.target
Before=poweroff.target halt.target
DefaultDependencies=no
[Service]
Type=oneshot
TimeoutSec=5
RemainAfterExit=true
User=sysadm
Group=sysadm
ExecStart=/bin/true
ExecStop=/usr/bin/myscript.sh
[Install]
WantedBy=multi-user.target systemd-halt.service systemd-poweroff.service
有没有办法让它只适用于关机?
答案1
我不确定这是否是最佳解决方案,但它似乎可以解决问题。
我ExecStart
根据以下内容更改了该行这回答:
ExecStop=/bin/bash -c 'systemctl list-jobs | grep -Eq 'reboot.target.*start' || /usr/bin/myscript.sh'