大多数用户的 .xsession-errors 文件会变大,因为 gtk 和其他库会给出愚蠢的错误消息。
有没有办法减少愚蠢的错误消息但仍然有一个有用的.xsession-errors 文件?
答案1
是的,这是可能的。此解决方案已使用 Debian jessie 和wdm
登录管理器进行了测试。
需要执行多个步骤:
步骤 8 至 10 是wdm
具体的,可能看起来不同gdm
,或kdm
- 以 root 身份登录
/etc/X11/Xsession
在编辑器中打开文件
#!/bin/sh
用以下代码替换文件中的第一行
#!/bin/bash
- 找到行
ERRFILE=$HOME/.xsession-errors
并添加以下行ERRFILTER=$HOME/.xsession-errors_filter
- 找到行
exec >>"$ERRFILE" 2>&1
并将其替换为
if [ -f $ERRFILTER ]; then exec > >(stdbuf -i0 -o0 -e0 grep -v -f "$ERRFILTER" >>"$ERRFILE") 2>&1 else exec >>"$ERRFILE" 2>&1 fi
- 保存文件并退出编辑器
- 在你的主目录中创建一个 .xsession-errors_filter 文件,并在那里写入你所做的错误消息的关键字不是想看。每行仅允许一个关键字/短语。
- 打开文件 /etc/X11/wdm/Xsession
- 找到行
. /etc/X11/Xsession
并将其替换为exec /etc/X11/Xsession
- 保存存档
- 仔细检查一切是否正确,否则 X11 可能无法启动
- 注销并登录 X
一些解释:
- 我们需要 bash 来进行这次重定向,替换 /bin/sh,并将
.
(source) 更改为 exec - 然后我们使用倒
grep
用于过滤。grep
正在从文件“.xsession-errors_filter”读取过滤关键字 - stdbuf 禁用 grep 缓冲,因此错误消息会立即写入文件
exec > >()
将 shell 的所有输出重定向到子 shell(运行 grep)