Все можно сделать с помощью шелл скриптов.
Создаете файл, например, 10_myscript с таким содержимым:
#!/bin/sh
case "$1" in
hibernate|suspend)
echo "Suspending myscript"
;;
thaw|resume)
echo "Resuming myscript"
;;
*)
echo "Unknown command"
;;
esac
exit 0
Сам скрипт помещаете в /etc/pm/sleep.d
Собственно этот скрипт будет выполнятся подсистемой сна/пропуждения. В данном примере-заглушке обрабатываются 4 типа аргументов скрипта. В конкретный кейсах вы можете выполнить все что вам нужно — запустить другую программу с необходимыми аргументами или послать другой программе сообщение через d-bus и т.д.