我的
journalctl
到处都是 gnome-session
警告。我已将问题追踪到 Google Chrome,该警告相对无害。然而,它淹没了我的日记输出,坦率地说,如果我确实需要检查它,我将无法找到我需要的东西。
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
日志记录。
这个问题似乎更适合Unix & Linux。
无论如何,在阅读日志时能够过滤掉单元,可以轻松地通过管道传输到
grep -v
,即使以下(使用grep的--line-buffered
参数)像
journalctl -f | grep --line-buffered -v "gnome"
这仍然很糟糕,因为现在没有有用的颜色。构造journalctl的命令参数可以提供更好的体验。
JARGS=`journalctl -F _COMM | sed -e 's/gnome.*//' -e 's/^/_COMM=/' | xargs`
journalctl -a -f $JARGS
现在,follow 的工作方式与分页一样好,同时使用
$!gnome
在 less 中隐藏 gnome 行。 哇!
遗憾的是 systemctl 和 Journalctl 不允许正则表达式匹配包含/排除。
在个人使用系统上(我猜你是因为 gnome 会话烦恼而使用的),有一些设置可能对设置有用。
journald.conf
至
Storage=
persist 或 auto(默认)。sudo mkdir -p /var/log/journal
MaxRetentionSec=1week
重新启动以有效重新启动 systemd-journald.service。
然后就可以使用了
journalctl -a -b -f $JARGS # -b to limit to current boot
或者任何你想要的参数,没有不需要的 gnome-session 东西。
您可以轻松地忽略任何“字符串”:
journalctl --no-pager -g "^(?!.*string)"
在你的情况下应该是这样的:
journalctl --no-pager -g "^(?!.*gnome-session)"