Mer*_*hts 6 logging journald journalctl
当一个进程登录到 systemd 时,它的进程名称被记录并显示为 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
Run Code Online (Sandbox Code Playgroud)
但是,过滤该名称似乎不起作用。
$ 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. --
Run Code Online (Sandbox Code Playgroud)
当我手动指定标识符时,会显示标识符而不是进程名称并且过滤工作。
$ 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
Run Code Online (Sandbox Code Playgroud)
如何根据进程名称过滤 journalctl 输出?
刚刚想通了这一点。您可以通过指定使用任何systemd 日志字段作为过滤器<FIELD_NAME>=<VALUE>
。
以下字段对这个问题很有用:
_COMM=, _EXE=, _CMDLINE=
日志条目源自的进程的名称、可执行路径和命令行。
因此,为了过滤命令名称,请使用 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8644 次 |
最近记录: |