Como permitir que um usuário use o journalctl para ver os logs de serviço systemd específicos do usuário?

14

Estou executando serviços no nível do 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 o log usando journalctl, recebi 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 o journalctl para a unidade específica do usuário?

ChromeHearts
fonte

Respostas:

10

Nas versões mais antigas do systemd, você precisará usar journalctl --user --user-unit=SERVICENAME(nas versões mais recentes journalctl --user -u SERVICENAMEfuncionará bem).

No entanto, isso só funciona se a Storagediretiva da [Journal]seção de /etc/systemd/journald.confestiver definida como persistent(em vez de autoou volatile). 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

D Schlachter
fonte
1
Adicionar o usuário ao grupo systemd-journal foi a resposta que eu precisava (a partir desse link da lista de discussão).
Travis Bem
Isso funcionou para mim no Ubuntu 17.10, onde um usuário inexplicavelmente não podia ver seus logs, enquanto outro podia.
elBradford
1
Adicionar um usuário ao grupo systemd-journal seria uma solução alternativa, mas como meu serviço era um serviço de usuário, não acho que os logs foram gerados em primeiro lugar, portanto, permitir que meu usuário visualize todos os outros logs não seria ajudou de qualquer maneira.
elBradford