Как запустить команды на приостановку / возврат из приостановки?

9

Я часто приостанавливаю свой ноутбук (pm-suspend), а иногда и мой рабочий стол (pm-suspend-hybrid) довольно часто. Я использую последнюю версию Ubuntu (13.10, дерзкий).

Есть ли способ выполнить команду, когда я перехожу в режим ожидания или сразу после выхода из режима ожидания? Я хотел бы убить все открытые выходные соединения ssh и остановить offlineimap, так как время ожидания для них, как правило, раздражает. Идеи?

Фрю Шмидт
источник

Ответы:

10

С manpage pm-action(8):

/etc/pm/sleep.d, /usr/lib/pm-utils/sleep.d
     Programs in these directories (called hooks) are combined
     and executed in C sort order before suspend and hibernate
     with as argument ´suspend´ or ´hibernate´. Afterwards they
     are called in reverse order with argument ´resume´ and
     ´thaw´ respectively. If both directories contain a similar
     named file, the one in /etc/pm/sleep.d will get preference.
     It is possible to disable a hook in the distribution
     directory by putting a non-executable file in
     /etc/pm/sleep.d, or by adding it to the HOOK_BLACKLIST
     configuration variable.

Таким образом, вы можете просто поместить shell-скрипт так:

#!/bin/bash

case "$1" in
suspend|hibernate)
    actions to
    take
    on suspend
    or hibernate
    ;;
resume|thaw)
    other actions
    to trigger
    on resume
    ;;
esac

например, 99-myhooks.shи сделать его исполняемым.

Кстати, вы можете уничтожить устаревшие SSH-соединения, войдя Enter~.Enterв сессию SSH.

Андреас Визе
источник
Это явно предсистемно
MountainX