Estou executando serviços de nível de usuário no Ubuntu 16.04 LTS. Por exemplo, tenho meu test.service localizado em ~/.config/systemd/user/test.service
.
Consegui executar o serviço fazendo
systemctl --user start test.target
No entanto, quando tento ler seu log usando journalctl
, recebo esta mensagem de erro:
journalctl --user -u test.service
Hint: You are currently not seeing messages from other users and the system.
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
No journal files were opened due to insufficient permissions.
Como posso usar journalctl
para a unidade específica do usuário?
Em versões mais antigas do systemd, você terá que usar
journalctl --user --user-unit=SERVICENAME
(em versões mais recentesjournalctl --user -u SERVICENAME
funcionará bem).No entanto, isso só funciona se a
Storage
diretiva da[Journal]
seção/etc/systemd/journald.conf
for definida comopersistent
(em vez deauto
ouvolatile
). Reinicie após editar o arquivo de configuração e o usuário poderá ver o diário.Mais informações: https://www.freedesktop.org/software/systemd/man/journald.conf.html https://lists.freedesktop.org/archives/systemd-devel/2016-October/037554.html
Não consegui fazê-lo funcionar com o
--user
e outras opções semelhantes. No entanto, posso ver os dados quando usojournalctl
sozinho. Ele inclui todos os logs, no entanto. Posso pesquisar o aplicativo específico em que estou interessado e ver essa saída. Para encontrar o mais recente, primeiro vou no final do arquivo e depois procuro para trás:Bata Gpara ir até o fim (é uma capital
G
)Clique ?e digite o nome do seu aplicativo
Não é tão prático, mas no aparelho que trabalho (um Jetson), foi praticamente a única forma que encontrei de fazer funcionar.