De acordo com a documentação systemd-suspend , bem como o < a href="https://www.freedesktop.org/software/systemd/man/systemctl.html"> página man do systemctl systemctl suspend ativa o suspend.target .
systemctl list-dependencies suspend.target --after --all mostra que suspend.target chama systemctl-suspend.service , em seguida sleep.target . Isso significa que quando você chama systemctl suspend , a ordem de operações padrão é:
suspend.target
|-systemd-suspend.service
|-sleep.target
Se você colocou Before=sleep.target , a sua ordem de operações é provável:
suspend.target
|-systemd-suspend.service
|-[custom service]
|-sleep.target
Portanto, o seu serviço é executado após systemd-suspend.service fazer a sua parte, o que provavelmente é o seu problema.
Você pode adicionar ao seu arquivo de serviço para obter os resultados corretos :
Before=systemd-suspend.service
Após chamar systemctl daemon-reload , você poderá usar systemctl list-dependencies suspend.target --after --all para ver seu serviço ser exibido entre suspend.target e systemd-suspend.service . Sua ordem final de operações deve ser:
suspend.target
|-[custom service]
|-systemd-suspend.service
|-sleep.target