私は必要なタスク、つまりシステムがシャットダウンしたときにスクリプトを実行するシステムサービスを持っています。しかし、これは再起動時にも実行されますが、これは私が望むものではありません。
サービスファイルは次のとおりです。
[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'