Prevenir xsession-errors [duplicate]

6

Estou tendo problemas com meu arquivo ~/.xsession-errors preenchendo minha unidade inteira (128G) em alguns dias. De fato, uma vez que foi em poucas horas. Eu executo esta máquina como um servidor, por isso ela é executada por dias sem reinicialização.

Eu li algumas soluções sobre como remover o arquivo via cron ou redirecioná-lo para /dev/null . Minha preocupação é que minha casa está em um SSD e não quero desperdiçar a unidade com um monte de gravações que não quero.

Como posso evitar que ele seja escrito? Além disso, se alguém puder explicar o que é este arquivo e por que tem tantos erros, eu agradeceria. Tem a ver com minhas sessões remotas vnc / ssh.

UPDATE: Parece aumentar de tamanho toda vez que eu VNC remoto usando "Desktop Sharing".

    
por ATLChris 27.02.2013 / 13:23

2 respostas

2

Esta pode ser uma ferramenta útil para depurar certos aplicativos, mas em alguns casos (e a maior parte do KDE é um excelente exemplo) você acaba com coisas demais apenas sentado lá.

Excluir (ou abusar de outra forma) o arquivo não será uma solução permanente porque as sessões são configuradas para recriar esse arquivo no login. No entanto, você tem algumas opções para lidar com isso.

Para o sádico: quebrar todas as coisas!

Você pode quebrar esse comportamento simplesmente executando sudoedit /etc/X11/Xsession e procurando a seção que aparece sobre ERRFILE . Obviamente, faça um backup primeiro, mas eu diria que você pode comentar (prefixar cada linha com um # ) ou remover todo o código a seguir:

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)"

Para o usuário de login longo: cron

Eu fico logado na minha área de trabalho por semanas a fio e, se algo explodir, é provável que eu só precise depurar por algumas horas, se precisar. Então eu corri crontab -e e criei uma linha como esta:

0 * * * * bash -c ">/.xsession-errors"

Isso apenas dá ao arquivo um cólon por hora.

Para o masoquista: corrija todos os bugs!

Você tem que lembrar que .xsession-error output está lá para indicar um bug ou algo se comportando de uma forma que não deveria. Isso nem sempre é verdade ( brilha no KDE ), mas no seu caso com seu cliente VNC, isso pode indicar que algo está errado.

Se você observar os erros, poderá alterar as configurações do aplicativo para evitar o erro ou, na sua falta, informar o erro (junto com algumas das mensagens de amostra) ao autor do software.

Se for apenas spam (por exemplo, "conectando-se ao servidor"), relate isso como um erro para o autor também. Eles estão usando mal a infra-estrutura.

    
por Oli 27.02.2013 / 14:03
0

Existe uma solução mais fácil, mas talvez não tão útil para alguns. Não use xdm ou qualquer outro DM. Inicialize sua máquina até o console de texto, login e startx .

    
por anonymous 15.06.2013 / 00:18

Tags