Выполнение скрипта при выключении

Вы не знаете в какой раздел задать вопрос? Ищите ответы на популярные вопросы? Тогда вам сюда!
Правила форума
Общая рекомендация по составлению тем: 1. Версия ОС вместе с разрядностью. Пример: LM 18.1 x64, LM Sarah x32 2. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 3. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) 4. Суть. Желательно с выводом консоли, логами. 5. Скрин. Просьба указывать 1, 2 и 3 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах
Аватара пользователя
di_mok
Сообщения: 1833
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 523 раза
Поблагодарили: 299 раз

Выполнение скрипта при выключении

Сообщение di_mok » 29 мар 2017, 18:30

Растолкуйте, как сделать что бы скрипт срабатывал при выключении, выходе и перезагрузке. На просторах несметное количество мануалов, противоречащих друг другу и не срабатывающих у меня. Речь о LM18
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)

Аватара пользователя
Chocobo
Сообщения: 4564
Зарегистрирован: 27 авг 2016, 19:57
Решено: 108
Откуда: НН
Благодарил (а): 373 раза
Поблагодарили: 1223 раза

Выполнение скрипта при выключении

Сообщение Chocobo » 29 мар 2017, 19:37

di_mok, есть пара вариантов навскидку силами systemd, в зависимости от того что должен делать скрипт.

Вариант 1. кинуть в /lib/systemd/system-shutdown/, но он исполняется очень поздно, перед самым выключением, все фс уже будут в ридонли. если нужно что-то писать - то в том же скрипте нужно будет предусмотреть ремаунт раздела в rw и обратно

Вариант 2. Завести фейковый сервис, который ничего не делает, но останов его (Exec_Stop) под общее завершение сессии будет ссылаться на нужный скрипт, например /lib/systemd/system/before_shutdown.service примерно такой конструкции

Код: Выделить всё

[Unit]
Description=Script to exec on shutdown

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/home/di_mok/before_shutdown_script.sh

[Install]
WantedBy=multi-user.target


и задействовать его с

Код: Выделить всё

sudo systemctl daemon-reload
sudo systemctl enable before_shutdown.service
 sudo systemctl start before_shutdown.service
Изображение


Вернуться в «Вопрос новичка и FaQ»

Кто сейчас на конференции

Сейчас этот форум просматривают: Linkdex [Bot] и 0 гостей