Xsession-errors detaktivieren

hallo,

ich hab hier ein paar Programme (elster und andere) die unter wine laufen und mir innerhalb kurzer Zeit mein home-verz. vollmüllen.

Es ist immer die Datei /home/user/.xsession-errors die so vollläuft

Das Löschen ist sinnlos, der Platz wird trotzdem verbraucht (zig andere Programme halten die Datei geöffent)#
auch ein Löschen VOR Start von x geht fehl, ebenso zu diesem zeitpunkt eine Umleitung auf /dev/null weil durch die X-Server-Konfiguration alles zurückgesetzt wird.

So … meine Frage … wie kann ich die Datei auf /dev/null umleiten?

Da gibt es (da ein ein häufiges Problem ist) den Tipp unter
https://wiki.ubuntuusers.de/XServer/xsession-errors/

eine Datei folgenden Inhalts zu erstellen

1
#! /bin/sh

This is a -- shell-script -- fragment called by /etc/X11/Xsession

Redirect all errors to /dev/null instead of $ERRFILE

(~/.xsession-errors by default), to avoid filling up users home

directory with error messages. Allow the user to disable this by

creating ~/.xsession-errors-enable

if ! -f “$HOME/.xsession-errors-enable” ] ; then

Report the change to the log file before switching

echo “info: Redirecting xsession messages to /dev/null.”
echo “info: touch ‘$HOME/.xsession-errors-enable’ to disable this.”
exec >> /dev/null 2>&1
fi

Wenn ich die zugehörigen Anweisungen abgearbeitet hat - hat das leider keine Auswirkungen

Wer kann mir helfen?:(:frowning:

Die Datei wird beim Starten von X sowieso gelöscht und neu angelegt.

ebenso zu diesem zeitpunkt eine Umleitung auf /dev/null weil durch die X-Server-Konfiguration alles zurückgesetzt wird.

So … meine Frage … wie kann ich die Datei auf /dev/null umleiten?

Welchen displaymanager verwendest du?
Normalerweise kann man das in dessen Konfiguration festlegen (der displaymanager startet X), zumindest bei kdm gehts auf jeden Fall.

hab ich gemerkt … das ganze Rumgebastel hat einen hohen Lerneffekt …

ich hab KDM …

ich hab in der kdmrc folgenden Bereich gefunden:

The file (relative to $HOME) to redirect the session output to. The

following character pairs are replaced:

- %d -> current display

- %u -> current user

- %r -> empty at first. See below.

- %% -> a single %

When the constructed filename cannot be used safely and the specification

contains %<stuff>r, other names will be tried - this time expanding %<stuff>r

to <stuff> followed by a random number.

Default is “.xsession-errors”

ClientLogFile=.xsession-errors-%d

ich nehme mal an, dass da was gemacht werden kann …
Wo muss ich da was drehen?

Setze ClientLogFile entsprechend nach deinen Wünschen.

Also z.B. “ClientLogFile=/dev/null”.

Die Datei ist als “Configfile” spezifiziert, sollte also auch durch Updates nicht verändert werden (obwohl sie in /usr/share/ ist).

bei mir sieht jetzt die

/usr/share/kde4/config/kdm/kdmrc

so aus

  • %% -> a single %

When the constructed filename cannot be used safely and the specification

contains %<stuff>r, other names will be tried - this time expanding %<stuff>r

to <stuff> followed by a random number.

Default is “.xsession-errors”

ClientLogFile=/dev/null

ClientLogFile=.xsession-errors-%d

ich bin mit strg-alt-f1 auf die Konsole gewechselt. Dann init 3 und init 5 (neue kdm- und x-session) dann
Elster/Wine gestartet

Ruck-zuck war xsession-errors wieder auf mehreren 100 MB und ein lsof | grep xsession sagte mir dass alle möglichen Programme darauf zugreifen …

also… das wirkt nicht … oder hab ich mich vertippt?

Nachtrag:
in der /usr/share/kde4/config/kdm/kdmrc
gibt es noch eine Zeile - ganz unten:

#See above
ClientLogFile=.xsession-errors

Core config for Xgl display

den hab ich ebenfalls auf /dev/null
gesetzt …
init 3 /init 5 : kein Resultat

neue Entdeckung: es gibt eine
xsession-errors - die immer Null byte hat

und eine
xsession-errors:0 die so tierisch wächst …

die wird wohl gesteuert von
/etc/X11/xdm/Xsession

da steht dann

Redirect errors to the standard user log files.

for errfile in “${HOME}/.xsession-errors”
“${TMPDIR:-/tmp}/xerr-${USER}-${DISPLAY}”
do
stderr=$(readlink -f /dev/stderr 2>/dev/null)

# Some DM seem to handle this them self
case "$stderr" in
/var/*|/tmp/*|/dev/*)
    ;;
*)  break
esac
# Avoid bad symbolic links
# mv(1) uses rename(2) on the *same* file system
case "${errfile##*/}" in
    xerr-*)
        if rm -f -- "$errfile" ; then
            tmpfile="$(mktemp -q "$errfile.XXXXXXXX")" || break
            mv -fT "$tmpfile" "$errfile" || break
            exec &gt; "$errfile" 2&gt;&1
            break
        fi
        ;;
    *)
        # Should we catch also e.g. vboxsf?
        if test $(stat -fc '%T' "${errfile%/.*}" 2&gt;/dev/null) = nfs
        then
            errfile="${errfile}-${HOSTNAME:-$(hostname -f)}:${DISPLAY#*:}"
        else
            errfile="${errfile}-${DISPLAY}"
        fi
        if test ! -e "$errfile" ; then
            tmpfile="$(mktemp -q "$errfile.XXXXXXXX")" || break
            mv -fT "$tmpfile" "$errfile" || break
        fi
        #exec &gt; "$errfile" 2&gt;&1
        #fate#316129: only put the error message to the logfile
        exec &gt; /dev/null
        exec 2&gt; "$errfile"
        break
        ;;   
esac

done

muss man da eventuell ran?

Crossposting: https://www.opensuse-forum.de/thread/36789-partion-voll-zurücksetzen/?postID=95699#post95699

das weiß ich und da geht es nicht weiter … dann darf man doch hier mal fragen ? Der Thread ist sogar geschlossen worden …

Das ist ein legitimer Grund.

Da aber Crosspostings sehr verpönt ist, verlangt die Etikette, dass du das selbst angibst.
Und dann auch die Threads synchron hältst. Also mögliche Lösungen des einen Forums auch im anderen anfügst.
Das Synchronisieren trifft hier ja nicht mehr zu, aber halte dich künftig daran, Crosspostings gleich als solche zu kennzeichnen.
Das wird nirgends gerne gesehen, wenn du nicht selbst das sofort klarstellst.
Crosspostings werden sehr schnell erkannt, da die Leute, die helfen, meist in mehreren Foren helfen.

ok … akzeptiert - das mit dem gegenseitigen Veröffentlichen wäre selbstverständlich gewesen. Ich lege großen Wert darauf, dass Problemlösungen für Suchmaschinen gut auffindbar werden.

Und den richtigen Anfang hab ich eben mal verpennt … ist auch das erst mal in meiner Linux-Zeit, dass ich ein 2. Forum bemühen muss.

Sorry, ich dachte wirklich dass das die entsprechende Einstellung ist.
Naja, ist sie ja vermutlich auch, aber wie du bereits festgestellt hast wird die Umleitung explizit durch Xsetup eingerichtet, sh. unten.

Ja, das ist die Logdatei für den Login-Bildschirm selbst, denke ich.
Diese Einstellung zeigt jedoch Wirkung, statt ~/.xsession-errors wird die angegebene Datei verwendet.

und eine
xsession-errors:0 die so tierisch wächst …

die wird wohl gesteuert von
/etc/X11/xdm/Xsession

da steht dann

muss man da eventuell ran?

Richtig, genau das ist es.

#
# Redirect errors to the standard user log files.
...
        *)
            # Should we catch also e.g. vboxsf?
            if test $(stat -fc '%T' "${errfile%/.*}" 2>/dev/null) = nfs
            then
               errfile="${errfile}-${HOSTNAME:-$(hostname -f)}:${DISPLAY#*:}"
            else
                errfile="${errfile}-${DISPLAY}"
            fi
            if test ! -e "$errfile" ; then
                tmpfile="$(mktemp -q "$errfile.XXXXXXXX")" || break
                mv -fT "$tmpfile" "$errfile" || break
            fi
            #exec > "$errfile" 2>&1
            #fate#316129: only put the error message to the logfile
            exec > /dev/null
            exec 2> "$errfile"
            break
            ;;
    esac

Ändere die erste rotmarkierte Zeile in:

errfile="/dev/null"

Und die Fehlerausgaben sollten verworfen werden.
Ich hab das jetzt aber nur mit einem anderen Dateinamen probiert, das hat funktioniert. Also denke ich dass auch /dev/null gehen sollte…

Alternativ ändere die zweite rotmarkierte Zeile in

exec 2> /dev/null

Das ist nämlich die Zeile, die die eigentliche Umleitung aktiviert…

Auch Xsession ist ein “Configfile”, die Änderungen sollten also auch bei Updates erhalten bleiben.

Andere Möglichkeit, leite einfach die Fehler-Ausgabe der betroffenen Programme um. Also starte sie ungefähr so:

command 2>/dev/null

Volltreffer … !!! Danke schön …

hiermit eine virtuelle Pizza und eine eiskaltes Bier !!

Ich werde die Lösung des Rätsels mit der Nennung des Erfinders weiter geben!

Wobei man hier sagen muss:

Die .xsession-errors hat schon seine Berechtigung, besser wäre es, das Übel (was die .xsession-errors vollmüllt) an der Wurzel zu packen, d. h. warum müllt angeblich wine/Elster so. Irgendwelche Ausgaben der .xsession-errors wurden allerdings nicht gepostet.

Das wurde dem TE schon alles gesagt, wollte er jedoch nicht lösen…

die Gründe sind absolut klar: Wine +Elster usw …
Mir fehlt die Kompetenz (wine) und die Möglichkeit (Elster u.a.), diese Programme zu ändern und es ist meine Entscheidung, lieber wine als eine Windows-VM zu nutzen. Dass dass nicht einfach akzeptiert werden kann - jeder soll seinen eigenen Weg gehen und ihr habt mir ja oft genug gesagt, dass ihr meinen nicht richtig findet. 1x pro Forumsteilnehmer reicht aber! Ich akzeptiere ja auch, dass du lieber eine Windows-VM nimmst und halte dir nicht den ‘Verräter’ vor.

vor diesem Hintergrund muss eben an der .xsession-errors gedreht werden - diese Logdatei ist ja ein generelles Problem. Daher wäre es für die Verantwortlichen eigentlich eine Aufgaben, eine log-Rotation + Kompression mit Größenbegrenzung zu implementieren. Nur das kann ich nicht verlangen. Das müssen sie schon selbst wollen.

Es gibt noch eine andere Möglichkeit, Xsession-errors zu bändigen:
(ganz unten in)
https://marc.waeckerlin.org/computer/blog/get_rid_of_xsession-error_that_s_filling_up_the_home_directory

einfach als root ein
chattr +i .xsession-errors

loslassen. Das kann man auch schnell (mit -i) wieder aufheben und muss nicht an Config-Dateien rumbasteln
Ich kann jetzt nicht sagen, ob dies auch nach dem x-Session-Start noch möglich ist oder vorher geschehen muss.

Aber das kann jeder selbst ausprobieren!

Nun ja.
Es ist ein Errorlog.

Sauerland hat da schon recht, dass es sinnvoller ist die Ursache zu finden und abzustellen,
als das Logging abzuschalten.
Du wirst halt -bei egal welchen Xsession Fehlern- keine Hinweise mehr erhalten.

Die Bremsen eines Autos werden auch nicht repariert, wenn man die Warnleuchte ausknipst.

Ich habe den Thread dort drüben nun auch gelesen.
Dir wurde die Lösung, die Scripte entsprechend zu ändern, dort auch gesagt.
Sie haben sie dir halt nicht geschrieben, weil sie den Weg für falsch halten.
Ich stimme ihnen zu.

Ich würde auch die chattr- Methode bevorzugen.
Dann kann man viel einfacher das Logging wieder einschalten.

Das Ganze hat schon fast den Charakter einer Hexenjagd.
Zig mal wird dem TE um die Ohren gehauen, dass man den Weg für falsch hält. Aber Wiederholungen steigern den Wahrheitswert nicht. Zudem waren die Hinweise der meisten Beteiligten nicht durchdacht, schlecht recherchiert bzw falsch.
Threads werden zwangsgeschlossen owohl keine Lösung gefunden wurde …

Dem TE ist offenkundig bewusst was er tut und hat eine Frage gestellt: wie er die Logdatei stoppen kann. Nix anderes. Wenn irgendjemand die Frage nicht passt, dann brauch er sie nicht zu beantworten.
Aber dieses permanente Rumgeholze ist einfach ätzend.
Und hinkende Vergleich auch.

Wie der TE schon bemerkt hat geht das Problem seit Jahren durch die Foren. Es ist gut, dass für OS jetzt einige Lösungen auf dem Tisch liegen. Jeder kann damit machen was er will.

Ich hab das Problem bei mir auch beobachtet und weiß jetzt, was im Bedarfsfall zu tun ist.

Und Google hat die Antworten schon verschlagwortet! Super!

Es mag ja sein, dass dort viele Antworten “schlecht durchdacht” sind.
Es kommt dort sogar vor, dass selbst Moderatoren sehr schräge bis falsche Antworten geben.

Nur entkräftet das nicht das Argument, dass ein Abstellen der Folgen, die Ursache nicht beseitigt.
Unabhängig von Vergleichen, die er eine für zutreffend, der andere für schräg halten mag.

Natürlich steht es jedem frei das Problem zu lösen, oder eben nicht.
Was ist denn dein Problem?