如何防止.xsession-errors占用磁盘空间?


12

有什么办法可以完全禁用.xsession-errors文件?我将其作为/ tmp的符号链接,以便我的笔记本电脑硬盘可以(希望)进入睡眠一次,但是该文件中至少95%的内容(每小时填充约500k)是...

(nautilus:1618):GLib-GObject-CRITICAL **:g_value_get_object:断言“ G_VALUE_HOLDS_OBJECT(值)”失败

这对我来说完全是垃圾。我尝试过建立到/ dev / null的符号链接,但这不起作用(结果链接被覆盖),并且我也不想进行该活动,因此希望我的笔记本电脑可以休眠一次。

我正在使用Ubuntu 11.04,没有Nautilus的特殊附加组件。


该技巧对我不起作用,因为在启动时/etc/X11/Xsession不会检查符号链接指向的内容。对我来说,它创建了一个新的.xsession-errors常规文件,并.xsession-errors.old链接到/dev/null。那不是我想要的。我想永久.xsession-errors重定向到/dev/null-除非我自己明确更改。
bjem 2012年

只是为了澄清@ j-johan-edwards。我测试了您的命令,它运行正常,我只是希望它是永久的。
bjem 2012年

11.04是否使用GDM或LightDM作为其显示管理器?
熟练地

我认为我的是GDM,如果这是默认设置。除了离开Unity桌面之外,我没有对其进行任何更改。
2012年

是的,我是GDM。显然,路径.xsession-errors是硬编码(?!)到其源代码中。在GDM加载重定向.xsession-errors到后,有没有一种运行脚本的好方法/dev/null
bjem 2012年

Answers:


10

我找到了一个临时解决方案。

我把小脚本/etc/X11/Xsession.d91redirect-xsession-errors,没有工作,现在,但如果你想拥有自己的自定义符号链接.xession-errors它不会为这项工作(我试过,但是没有得到任何数据输出)。

#!/ bin / sh

#将$ HOME / .xsession-errors重定向到/ dev / null。
#BJEM 2012年1月11日

XSESSION_ERRFILE = $ HOME / .xsession-errors

#这似乎不适用于常规文件,
#即,如果您想符号链接$ HOME / .xsession-errors
#到另一个文件。我不知道为什么。
XSESSION_ERRFILE_FINAL = / dev / null

#创建目标文件(如果不存在)。
触摸“ $ XSESSION_ERRFILE_FINAL”

#将.xsession-errors文件链接到所需的目标
#无论如何。
ln -sf“ $ XSESSION_ERRFILE_FINAL”“ $ XSESSION_ERRFILE”

# 测试用例。
#gedit和

#####文件结尾#####

有点“粗糙且准备就绪”,但它为我完成了工作。请注意,这是唯一已更改的文件。


不幸的是,我没有注意到@earlonrails的答案。如果/ etc / X11 / Xsession是符号链接,则它将在/ tmp中创建该文件,因此该方法无用。
int_ua

4

有一个名为/ etc / X11 / Xsession的文件。这将创建到tmp文件的符号链接。IE浏览器 从第61行开始

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

您可以将此Xsession文件cp到Xsession.bak。然后去头,将您的ERRFILE指向/ dev / null IE。83号线

exec >> /dev/null 2>&1

谢谢!我希望我早些注意到这个答案。我会给你200点声望。我制作了一个补丁,可以$NOXSESSIONERRORS 通过这种方式检查环境变量paste.ubuntu.com/p/TFxZ344k2p,我们希望将其放在上游。
int_ua

1
非常感谢!多年前,当我在一家设有自助服务亭的公司工作时,这对我来说是个大问题。我们将使用通常用于相机的紧凑型闪存卡来运行它们。在这些卡无法写入之前,只能对它们进行一定数量的写入。因此,如其他一些建议所示,多次删除文件只会使问题变得更糟。
earlonrails

这里有一个重复的问题,我的回答也是askubuntu.com/questions/177058/…–
earlonrails

我已向上游最接近的地方提出了合并请求:salsa.debian.org/xorg-team/xorg/merge_requests/7请在此处添加有关自助服务亭的故事。
int_ua

0

我在redhat linux 6.4服务器中也遇到了同样的问题,但是我可以使用以下命令查找哪个文件夹或用户占用更多空间:“查找/ -xdev -type f -size + 100000000c -exec ls -lh {} \;” 然后我使用rm -rf命令手动删除了x个会话错误


1
此答案没有说明如何停止错误。它仅说明如何删除它们。请更新您的答案。
卡兹·沃尔夫

0

请注意,如果进程仍在写入文件,则删除.xsession-errors文件不会释放空间,直到系统重新启动。使用echo覆盖文件内容以将文件设置为一个字符。直到写入.xsession-errors的进程停止,该文件将立即开始再次增长。我,我必须停止Remmina,然后截断文件,然后重新运行。如果将文件限制大小设置为几千兆字节,那么.xsession-errors文件不会将驱动器归档并导致系统崩溃,Note也有帮助。仍在寻找针对显然所有Linux操作系统都内置的病毒的问题的答案。听起来像Microsoft开发人员一直在为Linux做出贡献... ;-)


>.xsession-errors:>.xsession-errors 是将文件归零的其他好方法。
earlonrails
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.