设置systemdjournalctl忽略进程

问题描述 投票:0回答:2

我的

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
日志记录。

systemd
2个回答
9
投票

这个问题似乎更适合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

  1. 通过启动分割日志。
    验证
    Storage=
    persistauto(默认)。
    并创建
    sudo mkdir -p /var/log/journal
  2. 按时间限制存储使用。
    MaxRetentionSec=1week

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

然后就可以使用了

journalctl -a -b -f $JARGS # -b to limit to current boot 

或者任何你想要的参数,没有不需要的 gnome-session 东西。


0
投票

您可以轻松地忽略任何“字符串”:

journalctl --no-pager -g "^(?!.*string)"

在你的情况下应该是这样的:

journalctl --no-pager -g "^(?!.*gnome-session)"

© www.soinside.com 2019 - 2024. All rights reserved.