Come posso evitare che .xsession-errori consumi spazio su disco?


12

Esiste un modo per disabilitare completamente il file .xsession-errors? L'ho come un link simbolico a / tmp in modo che il mio disco rigido del laptop possa (si spera) andare in sospensione per una volta, ma almeno il 95% delle cose nel file (si riempie a circa 500k all'ora) è ...

(nautilus: 1618): GLib-GObject-CRITICAL **: g_value_get_object: asserzione `G_VALUE_HOLDS_OBJECT (valore) 'non riuscita

che è immondizia totale per me. Ho provato a fare un collegamento simbolico a / dev / null ma questo non funziona (il collegamento risultante viene sovrascritto) e non voglio nemmeno l'attività in modo che il mio laptop possa andare a dormire per una volta.

Sto usando Ubuntu 11.04, senza componenti aggiuntivi speciali per Nautilus.


Questo trucco non funziona per me, perché all'avvio /etc/X11/Xsessionnon controlla ciò a cui punta il collegamento simbolico. Per me crea un nuovo .xsession-errorsfile normale e si è .xsession-errors.oldcollegato a /dev/null. Non è quello che voglio. Voglio .xsession-errorsreindirizzato a /dev/null- in modo permanente a meno che non lo cambi esplicitamente da solo.
Bjem

Giusto per chiarire @ j-johan-edwards. Ho testato il tuo comando e funziona benissimo, voglio solo che sia permanente.
Bjem

11.04 utilizza GDM o LightDM come display manager?
detenere l'

Penso che il mio sia GDM, se quello è il valore predefinito. Non l'ho modificato se non per allontanarmi dal desktop Unity.
Bjem,

Sì, il mio è GDM. Apparentemente il percorso .xsession-errorsè hard coded (?!) nel suo codice sorgente. C'è un buon modo per eseguire uno script dopo i carichi GDM di reindirizzare .xsession-errorsa /dev/null?
Bjem,

Risposte:


10

Ho trovato una soluzione temporanea.

Ho messo un piccolo script /etc/X11/Xsession.dchiamato 91redirect-xsession-errorsche fa il lavoro per ora, ma se vuoi avere il tuo symlink personalizzato .xession-errorsperché non funziona per quello (ho provato e non ha prodotto alcun dato).

#! / Bin / sh

# Reindirizza $ HOME / .xsession-errori su / dev / null.
# BJEM 11 gennaio 2012

XSESSION_ERRFILE = $ HOME / .xsession-errors

# Questo non sembra funzionare per un file normale,
# vale a dire se vuoi collegare simbolicamente $ HOME / .xsession-errori
# in un altro file. Non so perché.
XSESSION_ERRFILE_FINAL = / dev / null

# Crea il file di destinazione se non esiste.
tocca "$ XSESSION_ERRFILE_FINAL"

# Collega il file .xsession-errors alla destinazione desiderata
# non importa cosa.
ln -sf "$ XSESSION_ERRFILE_FINAL" "$ XSESSION_ERRFILE"

# Caso di prova.
#gedit &

##### FINE DEL FILE #####

È un po '"grezzo e pronto", ma fa il lavoro per me. Si noti che questo è l' unico file che è stato modificato.


Sfortunatamente non ho notato la risposta di @earlonrails. / etc / X11 / Xsession creerà il file in / tmp se si tratta di un collegamento simbolico, quindi questo metodo è inutile.
int_ua,

4

C'è un file chiamato / etc / X11 / Xsession. Che creerà il collegamento simbolico a un file tmp. IE. Inizia sulla linea numero 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

Puoi cp questo file Xsession in Xsession.bak. Quindi vai a testa alta e punta il tuo ERRFILE su / dev / null IE. Linea 83

exec >> /dev/null 2>&1

Grazie! Vorrei aver notato questa risposta prima. Ti conferirò 200 reputazione. Ho creato una patch che controlla la variabile d'ambiente $NOXSESSIONERRORS paste.ubuntu.com/p/TFxZ344k2p in questo modo possiamo sperare di renderlo a monte.
int_ua,

1
Molte grazie! Questo è stato un grosso problema per me anni fa quando ho lavorato per un'azienda che produceva chioschi. Li eseguiremmo da schede flash compatte, generalmente utilizzate per le fotocamere. Queste carte avrebbero solo un certo numero di scritture su di esse prima che non riuscissero a scrivere sulle carte. Pertanto, l'eliminazione del file più volte, come suggeriscono altri, non fa che peggiorare il problema.
earlonrails

C'è una domanda duplicata con la mia risposta anche qui askubuntu.com/questions/177058/…
earlonrails

Ho fatto una richiesta di unione nella cosa più vicina che ho potuto trovare a monte : salsa.debian.org/xorg-team/xorg/merge_requests/7 Per favore aggiungi la tua storia sui chioschi lì.
int_ua,

0

Ho riscontrato lo stesso problema nel server Redhat Linux 6.4 ma posso trovare quale cartella o utente occupa più spazio usando questo comando "find / -xdev -type f -size + 100000000c -exec ls -lh {} \;" poi ho cancellato manualmente x errori di sessione usando il comando rm -rf


1
Questa risposta non dice COME fermare gli errori. Dice solo come eliminarli. Aggiorna la tua risposta.
Kaz Wolfe,

0

Si noti che l'eliminazione del file .xsession-errors non libera spazio fino al riavvio del sistema se un processo sta ancora scrivendo nel file. Utilizzare echo per sovrascrivere il contenuto del file per impostare il file su un carattere. Fino a quando il processo di scrittura in .xsession-errors arresta il file ricomincerà a crescere immediatamente. Io devo fermare Remmina quindi troncare il file e sono di nuovo in esecuzione. Nota aiuta anche se si imposta la dimensione del limite del file su alcuni gig in modo che il file .xsession-errors non possa archiviare l'unità e causare l'arresto anomalo del sistema. Sto ancora cercando la risposta a questo problema di un virus incorporato a quanto pare a tutti i sistemi operativi Linux. Sembra che gli sviluppatori Microsoft abbiano contribuito a Linux ... ;-)


>.xsession-errors, :>.xsession-errors sono altri buoni modi per azzerare un file.
earlonrails
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.