A sintaxe para iniciar um serviço de usuário com o systemd é apenas:
systemctl --user start service-name
systemd
procurará em ~/.config/systemd/user
pelos arquivos correspondentes.
Eu tenho meu próprio aplicativo e quero que ele funcione como um serviço. Não requer permissões de root. Eu só quero ser capaz de iniciá-lo, para finalizar graciosamente (por exemplo, SIGINT
- alguns segundos de espera - SIGKILL
), para reiniciar se falhar uma vez por hora, para obter status - tudo isso systemd
faz com serviços. Não há necessidade de iniciá-lo quando o sistema operacional for iniciado, não é necessário incluí-lo em toda a lista de serviços.
A restrição é que ele não deve requerer privilégios de root, e não deve ser instalado no sistema de alguma forma (ou, pelo menos, ser muito não-invasivo no sistema).
Consegui fazer isso funcionar se fosse colocado em ~/.config/systemd/user/loved.service
: systemctl --user link ~/loved.service
. Mas é desejável executá-lo diretamente da pasta do aplicativo.
Acredito que systemctl
poderia ser usado para casos como este:
systemctl --user start ~/loved.service
Quando eu corro isso, eu recebo:
Failed to start ....mount: Unit ....mount not found.
É claro que montar não é o que eu queria.
Como faço isso?
A sintaxe para iniciar um serviço de usuário com o systemd é apenas:
systemctl --user start service-name
systemd
procurará em ~/.config/systemd/user
pelos arquivos correspondentes.