Eu não encontrei uma solução para o meu problema, mas colocar os arquivos da unidade em ~/.config/systemd/user
e remover a parametrização do usuário corrigiu o problema para mim.
Estou tentando configurar o vigia como um serviço de usuário.
Eu segui a documentação da melhor forma possível. Isso é o que eu tenho:
O arquivo de soquete:
[Unit]
Description=Watchman socket for user %i
[Socket]
ListenStream=/usr/local/var/run/watchman/%i-state/sock
Accept=false
SocketMode=0664
SocketUser=%i
SocketGroup=%i
[Install]
WantedBy=sockets.target
O arquivo de serviço:
[Unit]
Description=Watchman for user %i
After=remote-fs.target
Conflicts=shutdown.target
[Service]
ExecStart=/usr/local/bin/watchman --foreground --inetd --log-level=2
ExecStop=/usr/bin/pkill -u %i -x watchman
Restart=on-failure
User=%i
Group=%i
StandardInput=socket
StandardOutput=syslog
SyslogIdentifier=watchman-%i
[Install]
WantedBy=multi-user.target
O Systemd tenta executar o watchman, mas fica preso em um loop de reinicialização.
Estes são os erros que recebo:
Apr 16 05:41:00 debian systemd[20894]: [email protected]: Failed to determine supplementary groups: Operation not permitted
Apr 16 05:41:00 debian systemd[20894]: [email protected]: Failed at step GROUP spawning /usr/local/bin/watchman: Operation not permitted
Tenho 100% de certeza de que o grupo e o usuário estão ativando este serviço & socket existe. O que estou fazendo errado?
Eu não encontrei uma solução para o meu problema, mas colocar os arquivos da unidade em ~/.config/systemd/user
e remover a parametrização do usuário corrigiu o problema para mim.
Eu estava correndo para o mesmo problema. Pesquisando, encontrei este tópico: link
O problema está em como o serviço está sendo iniciado. Se você especificar o usuário / grupo no arquivo da unidade, então você deve iniciar o serviço como um serviço do sistema.
Se você deseja iniciar o serviço como um serviço do usuário, o Usuário / Grupo não é necessário e pode ser removido da configuração da unidade. Você simplesmente inicia o serviço quando logado como o usuário atual passando o --user
flag para systemctl.
Espero que isso ajude!
Tags systemd systemd-unit