Любой способ запустить пользовательский скрипт на приостановить / возобновить в KDE4?

2169
Flimzy

У меня есть желание запустить скрипт как вошедший в систему пользователь непосредственно перед операцией гибернации (приостановки на диск) и сразу после возобновления работы с KDE4.

Я знаю, что могу поставить скрипт /etc/pm/sleep.d, который сделает это, но такой скрипт должен быть неинтерактивным и запускаться от имени пользователя root.

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

Я вижу, где можно запустить скрипт по подозрению в KDE, но он несовершенен:

Настройки системы -> Управление питанием -> Расширенные настройки -> Настройка уведомлений

Это позволяет мне указать команду для запуска при возобновлении, однако ...

  1. Похоже, он не делает различий между приостановкой на ОЗУ и приостановкой на диск (сам по себе, не прерыватель сделки, но мне действительно нужно только запустить мою команду на приостановке на диск)
  2. У него нет никакой возможности запустить скрипт при возобновлении, что на самом деле самая важная часть, которая мне нужна.

В конечном итоге я пытаюсь автоматически отключить мой раздел Windows при переходе в спящий режим, чтобы файловая система работала согласованно при каждой загрузке Windows. Лучше всего это делать как пользователю, так и с помощью взаимодействия, поскольку раздел зашифрован с помощью TrueCrypt, и я предпочитаю вводить фразу-пароль после возобновления, а не хранить ее в файловой системе.

Я понимаю, что могу многое из этого автоматизировать, если я хочу работать с правами root и не в интерактивном режиме, поэтому, пожалуйста, не предлагайте их в качестве альтернативы. Я могу в конечном итоге сделать это, но это не то, о чем этот вопрос.

2

1 ответ на вопрос

0
GioMac

Единственная похожая вещь, которую я нашел, это хуки на нижнем уровне, предоставляемые pmи systemdхуки:

https://wiki.archlinux.org/index.php/pm-utils

https://wiki.archlinux.org/index.php/Power_Management#Hooks_in_.2Fusr.2Flib.2Fsystemd.2Fsystem-sleep

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