Согласно документации systemd-suspend , а также странице руководства systemctl systemctl suspend
активирует suspend.target
.
systemctl list-dependencies suspend.target --after --all
показывает, что suspend.target
вызывает systemctl-suspend.service
затем sleep.target
. Это означает, что при вызове systemctl suspend
порядок операций по умолчанию следующий:
suspend.target
|-systemd-suspend.service
|-sleep.target
Если вы поместили Before = sleep.target
, то ваш порядок операций вероятен:
suspend.target
|-systemd-suspend.service
|-[custom service]
|-sleep.target
Итак, ваша служба запускается после того, как systemd-suspend.service
выполнит свою работу, что, вероятно, является вашей проблемой.
Вы можете добавить в свой служебный файл, чтобы получить правильные результаты :
Before = systemd-suspend.service
После вызова systemctl daemon-reload
вы должны быть возможность использовать systemctl list-dependencies suspend.target --after --all
, чтобы увидеть, как ваша служба появляется между suspend.target
и systemd-suspend.service
. Ваш окончательный порядок действий должен быть следующим:
suspend.target
|-[custom service]
|-systemd-suspend.service
|-sleep.target