Comment exécuter des commandes sur suspend / return from suspend?

9

Je suspend souvent mon ordinateur portable (pm-suspend) et parfois mon ordinateur de bureau (pm-suspend-hybrid) assez souvent. J'utilise le dernier ubuntu (13.10, impertinent).

Existe-t-il un moyen d'exécuter une commande lorsque je passe en suspension ou immédiatement après sa sortie? Je voudrais supprimer toutes les connexions ssh de sortie ouvertes et arrêter offlineimap, car le délai d'attente pour celles-ci a tendance à être ennuyeux. Des idées?

Frew Schmidt
la source

Réponses:

10

Depuis la page de manuel 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.

Ainsi, vous pouvez simplement mettre un script shell comme celui-ci:

#!/bin/bash

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

par exemple 99-myhooks.shet le rendre exécutable.

BTW, vous pouvez tuer les connexions SSH périmées en entrant Enter~.Enterdans la session SSH.

Andreas Wiese
la source
C'est évidemment pré-systemd
MountainX