История изменений
Исправление Deleted, (текущая версия) :
Это пока наилучший вариант который я увидел, не подскажите где посмотреть реализацию, не до конца понимаю, ExecStartPost это название файла? Или systemd-hibernate.service.d должен являться файлом? У меня нет systemd-hibernate.service.d ни в качестве файла, ни в качестве папки.
Это такой стандартный способ изменения системных сервисов без изменения файлов в /lib/systemd/system/, которые ставятся из пакетов и не должны редактироваться вручную.
В твоём случае нужно переместить скрипт из /lib/systemd/system-sleep/ в какое-нибудь другое место. Затем нужно создать директорию /etc/systemd/system/systemd-hibernate.service.d, в неё положить файл с каким-нибудь именем .conf (например: 50-add-my-script.conf) и примерно таким содержимым:
[Service]
ExecStartPost=/новый/путь/к/твоему/скрипту post hibernate
systemctl daemon-reload
Возможно, всё то же самое тебе нужно проделать также для systemd-hybrid-sleep.service и systemd-suspend-then-hibernate.service.
Кстати, похоже есть ещё один способ сделать то, что ты хочешь: создать отдельный сервис для твоего скрипта, указать что он должен работать стого после systemd-hibernate.service и добавить его в hibernate.target.
И в данном случае скрипт будет выполняться без ограничения по времени?
Да, должен без ограничения по времени.
Исходная версия Deleted, :
Это пока наилучший вариант который я увидел, не подскажите где посмотреть реализацию, не до конца понимаю, ExecStartPost это название файла? Или systemd-hibernate.service.d должен являться файлом? У меня нет systemd-hibernate.service.d ни в качестве файла, ни в качестве папки.
Это такой стандартный способ изменения системных сервисов без изменения файлов в /lib/systemd/system/, которые ставятся из пакетов и не должны редактироваться вручную.
В твоём случае нужно переместить скрипт из /lib/systemd/system-sleep/ в какое-нибудь другое место. Затем нужно создать директорию /etc/systemd/system/systemd-hibernate.service.d, в неё положить файл с каким-нибудь именем .conf (например: 50-add-my-script.conf) и примерно таким содержимым:
[Service]
ExecStartPost=/новый/путь/к/твоему/скрипту post hibernate
systemctl daemon-reload
Возможно, всё то же самое тебе нужно проделать также для systemd-hybrid-sleep.service и systemd-suspend-then-hibernate.service.
Кстати, похоже есть ещё один способ сделать то, что ты хочешь: создать отдельный сервис для твоего скрипта, указать что он должен работать стого после hibernate.service и добавить его в hibernate.target.
И в данном случае скрипт будет выполняться без ограничения по времени?
Да, должен без ограничения по времени.