Como filtrar a saída do journalctl pelo nome do processo?

2

Quando um processo registra no systemd, seu nome de processo é registrado e exibido como identificador na saída do journalctl.

$ systemd-cat echo "test"
$ journalctl -f
-- Logs begin at Sat 2018-02-24 12:13:24 CET. --
...
Jul 25 13:52:26 mycomputer echo[25098]: test

A filtragem desse nome, no entanto, parece não funcionar.

$ journalctl -f -t echo
-- Logs begin at Sat 2018-02-24 12:13:24 CET. --
$ journalctl -f -u echo
-- Logs begin at Sat 2018-02-24 12:13:24 CET. --

Quando especifico manualmente um identificador, o identificador é exibido em vez do nome do processo e dos trabalhos de filtragem.

$ systemd-cat -t myapp echo "test"
$ journalctl -f
-- Logs begin at Sat 2018-02-24 12:13:24 CET. --
Jul 25 13:56:08 mycomputer myapp[25213]: test
$ journalctl -f -t myapp
-- Logs begin at Sat 2018-02-24 12:13:24 CET. --
Jul 25 13:56:08 mycomputer myapp[25213]: test

Como posso filtrar a saída do journalctl no nome do processo?

    
por galgalesh 25.07.2018 / 14:01

1 resposta

2

Só percebi isso. Você pode usar qualquer campo de diário do systemd como filtro, especificando <FIELD_NAME>=<VALUE> .

Os seguintes campos são úteis para esta pergunta:

_COMM=, _EXE=, _CMDLINE=

The name, the executable path, and the command line of the process the journal entry originates from.

Portanto, para filtrar o nome do comando, use journalctl -f _COMM=<command-name>

$ journalctl -f _COMM=echo
-- Logs begin at Sat 2018-02-24 12:13:24 CET. --
Jul 25 13:52:26 mycomputer echo[25098]: test
Jul 25 13:56:08 mycomputer myapp[25213]: test
    
por 25.07.2018 / 14:12