我的~/.xsession-errors文件在几天内填满了我的整个驱动器 (128G)时遇到问题。事实上,一次是在几个小时内。我将这台机器作为服务器运行,因此它可以运行数天而无需重新启动。
我已经阅读了一些有关如何通过 cron 删除文件或将其重定向到/dev/null. 但我担心的是,我的家在 SSD 上,我不想浪费驱动器 i/o 进行一堆我不想要的写入。
我怎样才能防止它写?另外,如果有人能解释这个文件是什么,以及为什么它有这么多错误,我将不胜感激。是否与我的远程会话 vnc/ssh 有关。
更新:每次我使用“桌面共享”远程 VNC 时,它的大小似乎都会增加。
这对于调试某些应用程序来说是一个有用的工具,但在某些情况下(大多数 KDE 就是一个典型的例子)你最终会得到太多的东西。
删除(或以其他方式滥用)该文件不是永久解决方案,因为会话设置为在登录时重新创建该文件。不过,您有几种选择来处理它。
您只需运行sudoedit /etc/X11/Xsession并查找有关 about 的部分即可打破该行为ERRFILE。显然首先要进行备份,但我想说你可以注释(在每行前面加上#)或删除以下所有代码:
ERRFILE=$HOME/.xsession-errors
# attempt to create an error file; abort if we cannot
if (umask 077 && touch "$ERRFILE") 2> /dev/null && [ -w "$ERRFILE" ] &&
[ ! -L "$ERRFILE" ]; then
chmod 600 "$ERRFILE"
elif ERRFILE=$(tempfile 2> /dev/null); then
if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
message "warning: unable to symlink \"$TMPDIR/xsession-$USER\" to" \
"\"$ERRFILE\"; look for session log/errors in" \
"\"$TMPDIR/xsession-$USER\"."
fi
else
errormsg "unable to create X session log/error file; aborting."
fi
# truncate ERRFILE if it is too big to avoid disk usage DoS
if [ "`stat -c%s \"$ERRFILE\"`" -gt 500000 ]; then
T=`mktemp -p "$HOME"`
tail -c 500000 "$ERRFILE" > "$T" && mv -f "$T" "$ERRFILE" || rm -f "$T"
fi
exec >>"$ERRFILE" 2>&1
echo "$PROGNAME: X session started for $LOGNAME at $(date)"
Run Code Online (Sandbox Code Playgroud)
我一次会在桌面上保持登录状态数周,如果出现问题,很可能我只需要调试几个小时(如果有的话)。所以我运行crontab -e并创建了这样一行:
0 * * * * bash -c ">/.xsession-errors"
Run Code Online (Sandbox Code Playgroud)
这只是为文件提供了每小时的冒号。
您必须记住,.xsession-error输出是为了指示错误或某些行为不应该的行为。这并不总是正确的(瞪着 KDE),但就您的 VNC 客户端而言,这可能表明出现了问题。
如果您查看了错误,则可以更改应用程序设置以避免错误,或者如果失败,请将错误(以及一些示例消息)报告给软件的作者。
如果它只是垃圾邮件(例如:“连接到服务器”),也将其作为错误报告给作者。他们滥用基础设施。
| 归档时间: |
|
| 查看次数: |
3369 次 |
| 最近记录: |