3
[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. Можно ли запускать скрипт только при выключении и не перезапускать?

1 ответ1

2

Вы можете проверить в своем скрипте, перезагружаете ли вы или выключаете систему или выключаете питание системы, и решаете, что делать соответственно.

Например:

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

В man systemd.special вы можете увидеть все цели. Вы можете уделить больше внимания:

  • shutdown.target
  • reboot.target
  • halt.target
  • poweroff.target

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .