Как я могу предотвратить .xsession-errors не использовать дисковое пространство?

Есть ли способ полностью отключить файл .xsession-errors? Я использую его как символическую ссылку на / tmp, так что мой жесткий диск ноутбука может (надеюсь) один раз заснуть, но, по крайней мере, 95% содержимого файла (он заполняется со скоростью около 500 КБ в час) ...

(nautilus:1618): GLib-GObject-CRITICAL **: g_value_get_object: assertion `G_VALUE_HOLDS_OBJECT (value)' failed

, что для меня полная чушь. Я попытался создать символическую ссылку на / dev / null, но это не работает (результирующая ссылка перезаписывается), и я также не хочу выполнять эту операцию, так что, надеюсь, мой ноутбук на этот раз может заснуть.

Я использую Ubuntu 11.04 без специальных надстроек к Nautilus.

12
задан 26 June 2012 в 02:26

36 ответов

Обратите внимание, что удаление файла .xsession-errors не освобождает место до перезагрузки системы, если процесс все еще записывает в файл. Используйте echo, чтобы перезаписать содержимое файла, чтобы установить для файла один символ. До тех пор, пока процесс записи в .xsession-errors не прекратится, файл сразу же снова начнет расти. Я должен остановить Remmina, затем обрезать файл, и я вернулся к работе. Примечание также помогает, если вы установили предельный размер файла в несколько гигабайт, чтобы ваш файл .xsession-errors не мог подать на диск диск и вывести из строя систему. Все еще ищу ответ на эту проблему вируса, встроенного, по-видимому, во все операционные системы Linux. Звучит так, будто разработчики Microsoft вносят свой вклад в Linux ...; -)

0
ответ дан 10 August 2018 в 08:23

Я нашел временное решение.

Я поместил небольшой скрипт в /etc/X11/Xsession.d под названием 91redirect-xsession-errors, который сейчас выполняет эту работу, но если вы хотите иметь собственную пользовательскую символическую ссылку для .xession-errors это не работает для этого (я пытался, и он не выводил никаких данных).

#!/bin/sh

# Redirect $HOME/.xsession-errors to /dev/null.
# BJEM 11 January 2012

XSESSION_ERRFILE=$HOME/.xsession-errors

# This does not seem to work for a regular file,
# i.e. if you want to symlink $HOME/.xsession-errors
# to another file.  I do not know why.
XSESSION_ERRFILE_FINAL=/dev/null

# Creates target file if it does not exist.
touch "$XSESSION_ERRFILE_FINAL"

# Link .xsession-errors file to the desired target
# no matter what.
ln -sf "$XSESSION_ERRFILE_FINAL" "$XSESSION_ERRFILE"

# Test case.
#gedit &

##### END OF FILE #####

Это немного «грубо и готово», но это делает работу за меня. Обратите внимание, что это файл only , который был изменен.

10
ответ дан 10 August 2018 в 08:23

Я столкнулся с той же проблемой на сервере redhat linux 6.4, но я могу определить, какая папка или пользователь занимает больше места, используя эту команду "find / -xdev -type f -size + 100000000c -exec ls -lh {} \;" затем я вручную удалил x ошибок сеанса с помощью команды rm -rf

0
ответ дан 15 August 2018 в 20:28
  • 1
    Этот ответ не говорит, как остановить ошибки. Это только говорит, как удалить их. Пожалуйста, обновите свой ответ. – Kaz Wolfe 27 August 2014 в 13:18

Существует файл с именем / 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 в Xsession.bak. Затем идите головой и укажите свой ERRFILE на / dev / null IE. Строка 83

exec >> /dev/null 2>&1
3
ответ дан 15 August 2018 в 20:28

Обратите внимание, что удаление файла .xsession-errors не освобождает место до перезагрузки системы, если процесс все еще записывает в файл. Используйте echo, чтобы перезаписать содержимое файла, чтобы установить для файла один символ. До тех пор, пока процесс записи в .xsession-errors не остановится, файл сразу же начнет расти снова. Я должен остановить Remmina, затем обрезать файл, и я вернулся к работе. Примечание также помогает, если вы установили предельный размер файла в несколько гигабайт, чтобы ваш файл .xsession-errors не мог подать на диск диск и вывести из строя систему. Все еще ищу ответ на эту проблему вируса, встроенного, по-видимому, во все операционные системы Linux. Звучит так, будто разработчики Microsoft вносят свой вклад в Linux ...; -)

0
ответ дан 15 August 2018 в 20:28

Я нашел временное решение.

Я поместил небольшой скрипт в /etc/X11/Xsession.d под названием 91redirect-xsession-errors, который сейчас выполняет эту работу, но если вы хотите иметь собственную пользовательскую символическую ссылку для .xession-errors это не работает для этого (я пытался, и он не выводил никаких данных).

#!/bin/sh

# Redirect $HOME/.xsession-errors to /dev/null.
# BJEM 11 January 2012

XSESSION_ERRFILE=$HOME/.xsession-errors

# This does not seem to work for a regular file,
# i.e. if you want to symlink $HOME/.xsession-errors
# to another file.  I do not know why.
XSESSION_ERRFILE_FINAL=/dev/null

# Creates target file if it does not exist.
touch "$XSESSION_ERRFILE_FINAL"

# Link .xsession-errors file to the desired target
# no matter what.
ln -sf "$XSESSION_ERRFILE_FINAL" "$XSESSION_ERRFILE"

# Test case.
#gedit &

##### END OF FILE #####

Это немного «грубо и готово», но это делает работу за меня. Обратите внимание, что это файл only , который был изменен.

10
ответ дан 15 August 2018 в 20:28
  • 1
    Все еще отлично работает в 12.04 и до сих пор нет внимания к проблеме со стороны разработчиков AFAIU. – int_ua 5 July 2012 в 13:34

Другие вопросы по тегам:

Похожие вопросы: