Como seguir o log da unidade systemd?

3

Eu tenho uma unidade systemd em execução e quero seguir seu log.

Eu sei que posso mostrar o log da unidade usando:

journalctl -u my_unit.service

Mas isso apenas imprime os logs atuais sem segui-los.

Sei que também posso seguir os systemdlogs usando:

journalctl -f

Mas isso gera spam seguindo todos os logs conhecidos, então tenho que procurar pelo que me interessa.

Uma solução temporária parece canalizar os logs seguidos para grep filtrar a saída, mas essa não é uma solução muito sistemática:

journalctl -f | grep "what i'm interested in"

Não existe um comando para seguir os logs de determinada unidade?

O que eu tentei, mas não funcionou:

journalctl -uf my_unit.service
jirislav
fonte

Respostas:

3

Descobri que estou usando os argumentos em uma ordem incorreta. Na verdade, os logs podem ser seguidos para uma única unidade usando:

journalctl -fu my_unit.service

Outras variações de trabalho:

journalctl -f -u my_unit.service
journalctl -u my_unit.service -f

Do journalctlmanual:

-u, --unit=UNIT|PATTERN

    Mostrar mensagens para a unidade systemd especificada UNIT(como uma unidade de serviço) ou para qualquer uma das unidades correspondentes PATTERN. Se um padrão for especificado, uma lista de nomes de unidades encontrados no diário será comparada com o padrão especificado e todas as correspondências serão usadas. Para cada nome de unidade, uma correspondência é adicionada para mensagens da unidade (" "), juntamente com correspondências adicionais para mensagens do systemd e mensagens sobre coredumps para a unidade especificada._SYSTEMD_UNIT=UNIT

    Este parâmetro pode ser especificado várias vezes.

-f, --follow

    Mostre apenas os lançamentos mais recentes e imprima continuamente novos lançamentos à medida que são anexados ao diário.

jirislav
fonte