Как выполнять сценарии в / usr / lib / systemd / system-shutdown / при перезагрузке или завершении работы?

В bash вы можно вызвать редактор для текущей командной строки, используя Ctrl + x , Ctrl + e .

В системе у меня есть под рукой, этого нет в документации под man readline , но есть в man bash в разделе «readline», поэтому я не уверен, что это bash- специфическая функция, или если другие программы на основе readline будут поддерживать ее.

Вот документация из bash:

edit-and-execute-command ( C-xC-e )

Вызов редактора в текущей командной строке и выполнение результата в виде команд оболочки. Bash пытается вызвать $ VISUAL , $ EDITOR и emacs как редактор, именно в таком порядке.

5
13.04.2017, 15:36
2 ответа

Фактически скрипт запущен. Как указал Бигон и в отчете об ошибке, касание просто не может вступить в силу, потому что файловая система уже смонтирована только для чтения, когда сценарии в / lib / systemd / system-shutdown / выполняются.

В этом можно убедиться, монтируя и выполняя чтение-запись перед касанием :

#!/bin/sh
mount -oremount,rw /
touch /test
mount -oremount,ro /

Теперь / test действительно появляется после перезагрузки.

Однако это также означает, что запуск моего сценария через эту папку бесполезен, так как это произойдет слишком поздно.

Для записи в файлы журнала и т. Д. Необходимо запустить сценарий раньше через службу, как это было предложено Бигоном . Я объясняю это в Как запустить сценарий при завершении работы в Debian 9 или Raspbian 8 (Джесси) .

6
27.01.2020, 20:37

Итак, если вы хотите запускать скрипт во время выключения машины, вам нужно добавить .service файл, см: Как запустить сценарий с помощью systemd прямо перед выключением?

/lib/systemd/system-shutdown/ зарезервирован для особых случаев и выполняется в самом конце процедуры выключения/перезагрузки

3
27.01.2020, 20:37

Теги

Похожие вопросы