終了時にスクリプトを実行するが再起動しない

終了時にスクリプトを実行するが再起動しない

私は必要なタスク、つまりシステムがシャットダウンしたときにスクリプトを実行するシステムサービスを持っています。しかし、これは再起動時にも実行されますが、これは私が望むものではありません。

サービスファイルは次のとおりです。

[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'

おすすめ記事