将systemd journalctl设置为忽略进程

doo*_*ook 5 systemd

journalctl满心gnome-session警告.我已将问题跟踪到谷歌浏览器,警告相对无害.然而,它淹没了我的期刊输出,坦率地说,如果我需要检查它,我将无法找到我需要的东西.

May 30 12:13:49 hostname gnome-session[1347]: Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.

坦率地说,这是一个Chrome问题,我会留下它.但有没有办法让journalctl命令抑制某个进程的输出?我想gnome-session完全禁用日志记录.

The*_*ell 5

这个问题似乎更适合Unix和Linux.

无论如何,在仔细阅读日志时能够过滤掉单位,grep -v即使遵循(使用grep的--line-buffered参数),也可以轻松完成

journalctl -f | grep --line-buffered -v "gnome"
Run Code Online (Sandbox Code Playgroud)

这仍然很糟糕,因为现在没有有用的颜色.构建journalctl的命令参数可以提供更好的体验.

JARGS=`journalctl -F _COMM | sed -e 's/gnome.*//' -e 's/^/_COMM=/' | xargs`
journalctl -a -f $JARGS
Run Code Online (Sandbox Code Playgroud)

现在跟着像分页一样工作,同时隐藏gnome行少用$!gnome.活泉!

这是一个耻辱systemctl和journalctl不允许正则表达式匹配包含/排除.


在个人使用系统上(由于gnome-session烦恼而我猜你的),有一些设置可能对设置有用.

编辑系统journald.conf

  1. 通过启动拆分日志.
    验证Storage= 持久自动(默认).
    并创造sudo mkdir -p /var/log/journal
  2. 限制存储使用的时间.
    MaxRetentionSec=1week

重新启动以有效地重新启动systemd-journald.service.

然后你可以使用

journalctl -a -b -f $JARGS # -b to limit to current boot 
Run Code Online (Sandbox Code Playgroud)

或者你想要的任何args没有不需要的gnome会话的东西.