web-dev-qa-db-ja.com

systemdサービスでスクリプトを実行するのはシャットダウン時のみで再起動しない

[Unit]  
Description=test  
Before=shutdown.target

[Service]  
ExecStart=/bin/true  
ExecStop=/usr/local/bin/test.sh  
RemainAfterExit=yes

[Install]  
WantedBy=multi-user.target

たくさんの例を試しましたが、うまくいきませんでした。上記の例は、再起動とシャットダウンの両方で機能します。シャットダウン時のみ作業したい。

私はサーバーを持っていません。個人のパソコンです。私はGnu/linux osを持っています。シャットダウン時にのみスクリプトを実行し、再起動しないことは可能ですか?

5
david

システムを再起動、停止、または電源オフする場合は、スクリプトでテストし、それに応じて何をするかを決定できます。

例えば:

#!/bin/bash
if ! systemctl list-jobs | grep -q -e "reboot.target.*start"; then
   printf "Not rebooting\n"
fi

man systemd.specialすべてのターゲットを表示できます。次のことにもっと注意を払うことをお勧めします。

  • shutdown.target
  • restart.target
  • halt.target
  • poweroff.target
2
ingroxd