Quando um processo registra no systemd, seu nome de processo é registrado e exibido como identificador na saída 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
Filtrar por esse nome, no entanto, não parece 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 é mostrado em vez do nome do processo e a filtragem funciona.
$ 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 journalctl no nome do processo?
Acabei de descobrir isso. Você pode usar qualquer campo de diário do systemd como filtro especificando
<FIELD_NAME>=<VALUE>
.Os campos a seguir são úteis para esta pergunta:
Então, para filtrar o nome do comando, use
journalctl -f _COMM=<command-name>