Действительно ли возможно запустить скрипт перед завершением работы? Это означает в точке, где система все еще полностью функциональна.
Я пытался вставить свой сценарий завершения работы /lib/systemd/system-shutdown/test-script
. Это будет выполняться, но от моего понимания это только сразу выполняется, прежде чем завершение работы проходит. Например, диск уже смонтирован в режиме только для чтения. Это может быть зафиксировано, но обертывание сценария с:
#!/bin/bash
mount -oremount,rw /
... do something ...
mount -oremount,ro /
Чего я требую и не могу взяться за работу, тем не менее, интернет-соединение. Когда сценарий выполняется, интернет-соединение, кажется, больше не доступно.
Действительно ли возможно запустить скрипт прямо при начинании протокола завершения работы?
Я тестирую с Ubuntu 16.04.
Я нашел ответ на https://unix.stackexchange.com/q/39226/29509.
Для подведения его это решение работает на меня (на Ubuntu 16.04):
Создают файл /etc/systemd/system/my-cleanup.service
:
[Unit]
Description=Test cleanup at shutdown
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=/path/to/my-cleanup-script.sh
[Install]
WantedBy=multi-user.target
(Принятие сценария завершения работы доступно под /path/to/my-cleanup-script.sh
и является исполняемым файлом.)
Наконец, включите systemd сервис через:
sudo systemctl enable my-cleanup.service
sudo systemctl start my-cleanup.service
Относительно Ответа 1. Я полагаю, что решение будет работать "во время" завершения работы, но поскольку OP спросил it will run right at the begin of the shutdown
, я не уверен.
Эта ссылка является более явной о моменте, сценарий будет выполняться во время завершения работы: http://ccm.net/faq/3348-execute-a-script-at-startup-and-shutdown-on-ubuntu
обратите внимание, что я не протестировал его в своей системе, я просто передаю свои результаты.