Estou tentando executar um serviço específico do usuário com o systemd. Eu não sou um administrador de profissão, mas mais um desenvolvedor.
No momento, estou testando minha solução em um Ubuntu 16.04, mas planejo implantar a solução no Centos 7. Espero que nada mude realmente.
No entanto, até agora eu consegui fazer o seguinte por script:
- verifique se meu serviço está sendo executado efetivamente ao iniciar por
linha de comando
- crie o usuário joão com o diretório
/home/john
(eu preciso dessa casa), mas sem senha . Eu li que seria mais seguro (e espero não errar ...).
- crie o diretório
/home/john/.config/systemd/user
para armazenar meus arquivos de serviço.
- Ative a demora de acordo com este documento
Então, agora eu gostaria de testar a abertura de uma sessão com john e iniciar os serviços, mas não funciona. Eu estou tentando fazer o seguinte:
sam$ sudo su - john
john$ systemctl --user status my-service.service
e reúna isto desagradável:
Failed to connect to bus: No such file or directory
e não importa o comando status/start/stop/list-units
que eu coloquei no lugar do status acima, é sempre a mesma mensagem.
O comando que me conecta à sessão do john está logado por esta linha:
$journalctl -e
Jun 15 18:16:23 sam-dell sudo[5681]: sam : TTY=pts/2 ; PWD=/home/sam/IdeaProjects ; USER=root ; COMMAND=/bin/su - john
Jun 15 18:15:02 sam-dell su[5491]: Successful su for john by root
Jun 15 18:15:02 sam-dell su[5491]: + /dev/pts/2 root:john
Jun 15 18:15:02 sam-dell su[5491]: pam_unix(su:session): session opened for user john by (uid=0)
Jun 15 18:15:02 sam-dell su[5491]: pam_systemd(su:session): Cannot create session: Already running in a session
... e nada ocorre quando estou tentando os comandos systemctl
.
Nota: Eu adicionei uma senha ao meu usuário e ele ainda não funciona do terminal aberto na minha sessão do gnome do meu usuário sam
.
Mas como o meu usuário agora tem uma senha, o Ubuntu permite que eu me conecte a ele com o gnome e eu posso executar o systemctl --user status/start/stop
sem nenhum problema registrando na sessão do john gnome.
Alguém tem uma ideia? Eu estou talvez tendo o problema da maneira errada, eu simplesmente quero executar o serviço systemd como outro usuário no meu servidor remoto, então eu suponho que eu estava fazendo certo, mas talvez não.
Muito obrigado por ajudar