Я читал документ, и мне до сих пор неясно, возможно ли выполнить следующее:
сервис, определенный в ~/.config/systemd/user/task.service
этом, зависит от system sleep.target
( ~/.config/systemd/user/sleep.target.wants/task.service
).
Теперь я ожидаю, task.service
чтобы начать, когда я бегу $ systemctl suspend
, однако task.service
не запускается.
Я использую debian с версией systemd 208, systemd --user
настроенной более или менее так, как описано в ArchWiki .
Интересно , может ли мой сценарий будет реализован с Systemd на всех, или --system
и --user
полностью изолирован от дизайна , так что --user
устройство не может быть зависимостью из --system
единицы.
Если это возможно, в чем может быть проблема в моем случае?
Ответы:
От systemd / Пользователь - Archwiki
источник
systemd
пользовательские сервисы сеансов работают в совершенно отдельном экземпляреsystemd
и не имеют никакой возможности напрямую зависеть от системных сервисов.Есть и другие способы достичь желаемого. Самое чистое, вероятно, было бы сделать все, что вы хотите запустить, когда система спит, подключить
logind
ингибиторы, а затем запустить его в качестве фонового демона.Более общим решением было бы установить демоны на
logind
ингибиторы (см. Systemd-lock-handler и xss-lock ), а затем, когда система перейдет в спящий режим, она активирует цель сеанса пользователя, которую вы можете заказать для своих сервисов. под.источник
В дополнение к ответу @kyrias, вот способ создать свой собственный уровень пользователя sleep.target:
~ / .Local / доля / Systemd / пользователь / sleep.target
~ / .Local / бен / watch_sleep
~ / .Local / доля / Systemd / пользователь / watch_sleep.service
Смотрите мой пост в блоге https://medium.com/@aiguofer/systemd-sleep-target-for-user-level-10eb003b3bfd
источник