Eu estava lendo o documento e ainda não está claro para mim se é possível realizar o seguinte:
serviço definido em ~/.config/systemd/user/task.service
que depende do sistema sleep.target
( ~/.config/systemd/user/sleep.target.wants/task.service
).
Agora, espero task.service
começar quando corro $ systemctl suspend
, mas task.service
não foi iniciado.
Estou executando o debian, com a versão 208 do systemd, systemd --user
configurada mais ou menos como descrito no ArchWiki .
Pergunto-me se o meu cenário poderia ser implementado com systemd em tudo, ou são --system
e --user
completamente isolado por projeto de modo que --user
unidade pode não ser uma dependência de uma --system
unidade.
Caso seja possível, qual pode ser o problema no meu caso?
Respostas:
De systemd / Usuário - Archwiki
fonte
systemd
os serviços de sessão do usuário são executados em uma instância completamente separadasystemd
e não têm como depender diretamente dos serviços do sistema.Existem outras maneiras de realizar o que você deseja. O mais limpo seria provavelmente fazer com que o que você deseja executar quando o sistema estiver ligado aos
logind
inibidores e, em seguida, execute-o como um daemon em segundo plano.Uma solução mais geral seria ter um daemon conectado aos
logind
inibidores (consulte systemd-lock-handler e xss-lock ) e, quando o sistema estiver inativo, ele ativará um destino de sessão do usuário que você poderá solicitar seus serviços debaixo.fonte
Além da resposta de @kyrias, aqui está uma maneira de criar seu próprio sono.target no nível do usuário:
~ / .local / share / systemd / user / sleep.target
~ / .local / bin / watch_sleep
~ / .local / share / systemd / user / watch_sleep.service
Veja minha postagem no blog https://medium.com/@aiguofer/systemd-sleep-target-for-user-level-10eb003b3bfd
fonte