TL; DR: você quer usar systemctl suspend
.
/sys/power/state
é a API do kernel que o XFCE chama no final.
As APIs do Kernel não executam scripts de gancho. Software quer ser capaz de ligar para executar comandos antes de suspender (assim como depois de currículo). Portanto, a abordagem mais simples é ter um programa que execute hooks suspensos, chamadas no kernel e, em seguida, execute hooks de reinicialização.
Sendo este o Linux, vários desses programas foram escritos ao longo do tempo. systemd
é atualmente o mais proeminente.
Detalhes técnicos
XFCE ou systemctl suspend - > systemd-logind - > systemd - > systemd-sleep - > kernel do linux.
É possível conectar-se a isso de maneiras diferentes, em cada um dos três links diferentes que iniciam systemd
:). Seu script em /etc
é executado por algo instalado em um dos dois últimos. Veja man systemd-sleep
e man systemd.special
. Infelizmente, as formas exatas de usar esses ganchos não estão documentadas muito bem agora. (O nível do systemd em particular precisa de um pouco de amor).
Quanto ao primeiro gancho possível: o sistema logind "inhibitor" é destinado para uso por aplicativos GUI . Envolve receber sinais DBus.