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

Руководства, вопросы, обсуждения
Правила форума
Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа.
Аватара пользователя

Автор темы
di_mok
Сообщения: 2204
Зарегистрирован: 27 авг 2016, 16:06
Решено: 15
Откуда: Арзамас
Благодарил (а): 573 раза
Поблагодарили: 339 раз

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

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

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

Аватара пользователя

Chocobo
Сообщения: 5503
Зарегистрирован: 27 авг 2016, 19:57
Решено: 128
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1427 раз

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

Сообщение 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

Вернуться в «Параметры и оптимизация»