Use a opção --user-unit
e, no seu caso ...
journalctl --user-unit chatty
Estou tentando aprender o uso básico do systemd e me deparei com um problema confuso com as unidades de serviço do usuário.
Ao executar serviços comuns com systemctl start some.service , posso encontrar o log completo desse serviço (incluindo o que foi impresso em stdout / stderr, como eu o entendo) executando sudo journalctl --unidade some.service .
Considere o exemplo servicefile chatty.service :
[Service]
ExecStart=/usr/bin/echo "test from chatty.service"
Quando eu coloco este arquivo de serviço em ~ / .config / systemd / user / chatty.service e executo com systemctl --user start chatty.service eu não posso encontre sua saída enviada para stdout em journalctl, nem com plain journalctl nem com journalctl --user . Eu só recebo a seguinte saída em ambos:
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Starting chatty.service...
Jan 15 19:16:52 qbd-x230-suse.site systemd[1168]: Started chatty.service.
E journalctl --unit chatty.service não retorna nada (com ou sem --user não faz diferença).
Se eu mover o mesmo arquivo de serviço para / etc / systemd / system e executá-lo com sudo systemd start chatty.service , eu recebo a seguinte saída quando execute journalctl sudo --unit chatty.service :
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service...
Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started chatty.service.
Jan 15 19:28:08 qbd-x230-suse.site echo[27098]: test from chatty.service
Parece que a unidade de serviço do usuário não está tão bem integrada de alguma forma, isso é esperado, estou faltando alguma coisa ou é um bug?
Estou executando o openSUSE 13.1 x86-64, com systemd 208 (instalação padrão).
Use a opção --user-unit
e, no seu caso ...
journalctl --user-unit chatty
Até o systemd v230 , você tinha que usar o sinalizador --user-unit
menos intuitivo para visualizar os logs do seu unidade do usuário:
journalctl --user-unit chatty
Desde o systemd v230, agora você pode combinar as sinalizações --user
e --unit
como esperado:
journalctl --user --unit chatty
A sintaxe --user --unit
é suportada desde o Ubuntu 17.10.
Necroposting, mas enfrentei e resolvi o mesmo problema hoje. Muito provavelmente journalctl --user-unit chatty
não funcionou porque você o executa a partir da raiz. No entanto, por man journalctl
, --user-unit
filtra as entradas de log não apenas por _SYSTEMD_USER_UNIT=
, mas também por _UID=
e não há chatty
service com o uid do root, portanto nenhuma entrada foi encontrada.
É provável que você também tenha tentado executar journalctl --user-unit chatty
do seu usuário habitual, mas obteve No journal files were found
. Isso acontece porque (e Todos os usuários têm acesso aos seus diários privados por usuário do man journalctl
podem ser confusos aqui) em 2018 no meu journalctl do Debian 9 ainda não é persistente por padrão ( Storage=auto
em /etc/systemd/journald.conf
, e /var/log/journal/
não existe), e no modo não persistente journald
não suporta logs de divisão, então todos os logs acabam em um único local em /run/log/journal
apesar do fato de que a divisão está ativada por padrão - veja SplitMode
em man journald.conf
. A ativação da persistência corrige isso.
TL; DR: ative a persistência colocando Storage=persistent
em /etc/systemd/journald.conf
e recarregando o journald com sudo systemctl restart systemd-journald
.
Como alternativa, pesquise com sudo journalctl _SYSTEMD_USER_UNIT=chatty.service
Mais alguns detalhes estão em link
Tags systemd