De acordo com esta resposta para a mesma pergunta na lista de discussão devkit usado por upower , versões mais recentes não emitem mais esse sinal, já que isso é controlado pelo systemd .
A substituição no systemd-land é logind , que tem um sinal chamado PrepareForSleep : "Os sinais PrepareForShutdown () e PrepareForSleep () são enviados diretamente antes (com o argumento True) e depois (com o argumento False) o sistema desce para reboot / poweroff, ou suspensão / hibernação."
Aqui está um script python simples para assistir a eventos de suspensão / retomada:
#!/usr/bin/env python
from datetime import datetime
import dbus
import gobject
from dbus.mainloop.glib import DBusGMainLoop
def handle_sleep(*args):
print "%s PrepareForSleep%s" % (datetime.now().ctime(), args)
DBusGMainLoop(set_as_default=True) # integrate into gobject main loop
bus = dbus.SystemBus() # connect to system wide dbus
bus.add_signal_receiver( # define the signal to listen to
handle_sleep, # callback function
'PrepareForSleep', # signal name
'org.freedesktop.login1.Manager', # interface
'org.freedesktop.login1' # bus name
)
loop = gobject.MainLoop()
loop.run()