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