13 votes

Comment éviter que les erreurs .xsession ne consomment de l'espace disque ?

Existe-t-il un moyen de désactiver complètement le fichier .xsession-errors ? Je l'ai placé dans un lien symbolique vers /tmp pour que le disque dur de mon ordinateur portable puisse (avec un peu de chance) se mettre en veille pour une fois, mais au moins 95% du contenu du fichier (il se remplit à environ 500k par heure) est...

(nautilus:1618): GLib-GObject-CRITICAL \*\*: g\_value\_get\_object: assertion \`G\_VALUE\_HOLDS\_OBJECT (value)' failed

ce qui est une vraie camelote pour moi. J'ai essayé de faire un lien symbolique vers /dev/null mais cela ne fonctionne pas (le lien résultant est écrasé), et je ne veux pas non plus de l'activité pour qu'avec un peu de chance mon ordinateur portable puisse se coucher pour une fois.

J'utilise Ubuntu 11.04, sans ajouts particuliers à Nautilus.

10voto

J'ai trouvé une solution provisoire.

J'ai mis un petit script en /etc/X11/Xsession.d appelé 91redirect-xsession-errors qui fait l'affaire pour l'instant, mais si vous voulez avoir votre propre lien symbolique personnalisé pour le fichier .xession-errors cela ne fonctionne pas pour cela (j'ai essayé et cela n'a pas sorti de données).

#!/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 #####

Il est un peu "brut de décoffrage" mais il fait l'affaire pour moi. Notez que c'est le uniquement qui a été modifié.

6voto

Andrew Points 501

Il existe un fichier appelé /etc/X11/Xsession. Qui créera le lien symbolique vers un fichier tmp. IE. Il commence à la ligne 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

Vous pouvez cp ce fichier Xsession vers Xsession.bak. Puis allez-y et faites pointer votre ERRFILE vers /dev/null IE. Ligne 83

exec >> /dev/null 2>&1

1voto

stimur Points 111

Si vous avez toujours besoin d'une solution qui conserve les journaux et qui a une rotation appropriée (comme cela devrait être le cas pour toutes les données enregistrées).

Voici mon approche :

remplacer

exec >>"$ERRFILE" 2>&1

avec

exec > >(logger -t xsession-$USER) 2>&1

dans le /etc/X11/Xsession fichier

Cela enverra tous les journaux au serveur syslog local, qui peut envoyer les journaux à l'adresse suivante /var/log/syslog par défaut et avoir des règles logrotate appropriées

Vous pouvez également acheminer ces messages vers un fichier distinct, en utilisant la configuration de syslog et avoir des règles logrotate distinctes pour ce fichier.

0voto

Kaspars Leinis Points 1

Cela a marché pour moi : exécuter avec sudo

  1. cd dans le dossier utilisateur

  2. créer un nouveau fichier .xsession-errors, par ex.

    echo test>.xsession-errors

  3. chmod 000 .xsession-errors

  4. Ajout d'un attribut immuable - même l'utilisateur root ne pourra pas écrire dans le fichier.

    chattr +i .xsession-errors

-1voto

user320929 Points 1

J'ai rencontré le même problème sur un serveur redhat linux 6.4 mais je peux trouver quel dossier ou utilisateur prend le plus d'espace en utilisant cette commande. "find / -xdev -type f -size +100000000c -exec ls -lh {} \ ;" puis j'ai supprimé manuellement x erreurs de session en utilisant la commande rm -rf

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X