How do I run commands on suspend/return from suspend?
I suspend my laptop (pm-suspend) often and sometimes my desktop (pm-suspend-hybrid) fairly often. I am using the latest ubuntu (13.10, saucy).
Is there a way I could run a command when I go into suspend or immediately after coming out of suspend? I'd like to kill any open output ssh connections and stop offlineimap, since the timeout for those tends to be annoying. Ideas?
Solution 1:
From 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.
Thus you could simply put a shell-script like this:
#!/bin/bash
case "$1" in
suspend|hibernate)
actions to
take
on suspend
or hibernate
;;
resume|thaw)
other actions
to trigger
on resume
;;
esac
into e.g. 99-myhooks.sh
and make it executable.
BTW, you can kill stale SSH-connections by entering Enter~.Enter in the SSH session.