¿Cómo evito que los errores .xsession consuman espacio en el disco?

12

¿Hay alguna forma de deshabilitar por completo el archivo .xsession-errors? Lo tengo como enlace simbólico a / tmp para que el disco duro de mi computadora portátil pueda (con suerte) ir a dormir por una vez, pero al menos el 95% de las cosas en el archivo (se llena a aproximadamente 500k por hora) es ...

(nautilus: 1618): GLib-GObject-CRITICAL **: g_value_get_object: aserción `G_VALUE_HOLDS_OBJECT (valor) 'falló

lo cual es basura total para mí. He intentado hacer un enlace simbólico a / dev / null pero eso no funciona (el enlace resultante se sobrescribe), y tampoco quiero la actividad para que, con suerte, mi computadora portátil pueda irse a dormir por una vez.

Estoy usando Ubuntu 11.04, sin complementos especiales para Nautilus.

bjem
fuente
Ese truco no funciona para mí, porque en el inicio /etc/X11/Xsessionno comprueba a qué apunta el enlace simbólico. Para mí, crea un nuevo .xsession-errorsarchivo regular y se ha .xsession-errors.oldvinculado a /dev/null. Eso no es lo que quiero. Quiero .xsession-errorsredirigido a /dev/null- de manera permanente a menos que yo mismo lo cambie explícitamente.
bjem
Solo para aclarar @ j-johan-edwards. Probé tu comando y funciona bien, solo quiero que sea permanente.
bjem
¿11.04 usa GDM o LightDM como su administrador de pantalla?
desviarse el
Creo que el mío es GDM, si ese es el valor predeterminado. No lo he cambiado, excepto para alejarme del escritorio de Unity.
bjem
Sí, mi uno es GDM. Aparentemente, la ruta a .xsession-errorsestá codificada (?!) en su código fuente. ¿Hay una buena manera de ejecutar una secuencia de comandos después de GDM cargas para redirigir .xsession-errorsa /dev/null?
bjem el

Respuestas:

10

Encontré una solución provisional.

Puse un pequeño script /etc/X11/Xsession.dllamado 91redirect-xsession-errorsque hace el trabajo por ahora, pero si desea tener su propio enlace simbólico personalizado .xession-errors, no funciona para eso (lo intenté y no generó ningún dato).

#! / bin / sh

# Redirigir $ HOME / .xsession-errors a / dev / null.
# BJEM 11 de enero de 2012

XSESSION_ERRFILE = $ HOME / .xsession-errors

# Esto no parece funcionar para un archivo normal,
# es decir, si desea vincular $ HOME / .xsession-errors
# a otro archivo. No se por que.
XSESSION_ERRFILE_FINAL = / dev / null

# Crea el archivo de destino si no existe.
toca "$ XSESSION_ERRFILE_FINAL"

# Enlace .xsession-errors file al destino deseado
# no importa qué.
ln -sf "$ XSESSION_ERRFILE_FINAL" "$ XSESSION_ERRFILE"

# Caso de prueba.
#gedit &

##### FIN DEL DOCUMENTO #####

Es un poco 'duro y listo' pero hace el trabajo por mí. Tenga en cuenta que este es el único archivo que se ha modificado.

bjem
fuente
Lamentablemente no noté la respuesta de @earlonrails. / etc / X11 / Xsession creará el archivo en / tmp si es un enlace simbólico, por lo que este método es inútil.
int_ua
4

Hay un archivo llamado / etc / X11 / Xsession. Lo que creará el enlace simbólico a un archivo tmp. ES DECIR. Comienza en la línea número 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

Puede copiar este archivo Xsession a Xsession.bak. Luego diríjase y señale su ERRFILE a / dev / null IE. Línea 83

exec >> /dev/null 2>&1
Earlrails
fuente
¡Gracias! Desearía haber notado esta respuesta antes. Te otorgaré 200 reputación. Hice un parche que verifica la variable de entorno $NOXSESSIONERRORS paste.ubuntu.com/p/TFxZ344k2p de esta manera, podemos esperar que sea ascendente.
int_ua
1
¡Muchas gracias! Este fue un gran problema para mí hace años cuando trabajaba para una empresa que fabricaba quioscos. Los correríamos desde tarjetas flash compactas, generalmente utilizadas para cámaras. Estas tarjetas solo tendrían un cierto número de escrituras antes de que fallaran al escribir en las tarjetas. Por lo tanto, eliminar el archivo muchas veces, como sugieren otros, solo empeora el problema.
earlonrails
Hay una pregunta duplicada con mi respuesta aquí también askubuntu.com/questions/177058/…
earlonrails
Hice una solicitud de fusión en lo más cercano que pude encontrar al principio : salsa.debian.org/xorg-team/xorg/merge_requests/7 Agregue su historia sobre los quioscos allí.
int_ua
0

Enfrenté el mismo problema en el servidor redhat linux 6.4 pero puedo encontrar qué carpeta o usuario ocupa más espacio usando este comando "find / -xdev -type f -size + 100000000c -exec ls -lh {} \;" luego eliminé manualmente los errores de sesión x usando el comando rm -rf

usuario320929
fuente
1
Esta respuesta no dice CÓMO detener los errores. Solo dice cómo eliminarlos. Por favor actualice su respuesta.
Kaz Wolfe
0

Tenga en cuenta que eliminar el archivo .xsession-errors no libera espacio hasta que se reinicia el sistema si todavía hay un proceso escribiendo en el archivo. Use echo para sobrescribir el contenido del archivo para establecer el archivo en un carácter. Hasta que el proceso de escritura en .xsession-errors se detenga, el archivo comenzará a crecer de inmediato. Tengo que detener a Remmina, truncar el archivo y volver a ejecutarlo. Note también ayuda si configura el tamaño límite de su archivo en unos pocos conciertos para que su archivo .xsession-errors no pueda archivar la unidad y bloquear su sistema. Todavía estoy buscando LA respuesta a este problema de un virus integrado en aparentemente todos los sistemas operativos Linux. Parece que los desarrolladores de Microsoft han estado contribuyendo a Linux ... ;-)

dneill
fuente
>.xsession-errors, :>.xsession-errors son otras buenas maneras de poner a cero un archivo.
earlonrails