Problem mit Openbox Session und Slim

JochenF

Well-Known Member
Hallo,

ich habe hier ein seltsames Problem mit Slim. Ich starte im openbox autostart u.a. tint2, und nach einem sleep meinen Jabber Client Gajim, der normalerweise ein Icon im Tray von Tint2 anzeigt.

Logge ich mich über xdm ein klappt alles wunderbar. Logge ich mich aber unter slim ein, dann erscheint der Gajim nicht. Starte ich ihn im autostart aber mit "gajim >/dev/null 2>&1", dann läuft er auch unter slim.

Woran könnte das liegen?

Außerdem habe ich unter slim kein .xsession-errors. Wo sehe ich da die Fehlermeldungen der Programme?
 
LANG=de_DE.UTF-8; export LANG
CHARSET=UTF-8; export CHARSET
BROWSER=firefox; export BROWSER
XDG_CONFIG_DIRS=/usr/local/etc/xdg; export XDG_CONFIG_DIRS
XDG_MENU_PREFIX=''; export XDG_MENU_PREFIX
SESSIONPID=$$; export SESSIONPID
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:$HOME/bin; export PATH
xset -dpms
xset s off
setxkbmap de
exec openbox-session
 
## Openbox autostart
## Group start:
## 1. feh - restores wallpaper
## 2. compositor - start
## 3. sleep - give compositor time to start
## 4. tint2 panel
(\
sh $HOME/.fehbg && \
cb-compositor --start && \
sleep 2 && \
tint2 \
) &

## Set keyboard settings - 250 ms delay and 25 cps (characters per second) repeat rate.
## Adjust the values according to your preferances.
xset r rate 250 25 &

## Turn on/off system beep
xset b off &

## Gajim
(sleep 17 && gajim >/dev/null 2>&1) &
 
Kann es was mit der xauth Authorisierung zu tun haben? Bei xdm musste ich z.B. auch auf MIT-MAGIC-COOKIE-1 umstellen, weil sonst Libreoffice nicht startete. Seit ich auf Slim umgestellt habe zickt nicht nur Gajim rum, auch Thunderbird macht Probleme und hängt sich oft auf.
 
Ich habe dunkel in Erinnerung, daß slim ein wenig "kaputt" war und die Auswahl verschiedener DEs nicht mehr unter *BSD funktionierte, aber ob das auch deine Probleme verursacht, weiß ich leider nicht.
 
versuch mal sleep gegen wait zu tauschen, sleep suspendiert und wait macht das was du eigentlich möchtest.
Ich habe exec aus meiner .xinitrc entfernt, warum weiß ich nicht mehr.
Aber generell funktioniert slim und Openbox zusammen ohne probleme.
 
??? wait ist doch was völlig anderes als sleep. Wait wartet auf Hintergrundprozesse bis die fertig sind. Sleep wartet eine bestimmte Zeit.
Ich will nicht auf bestimmte Prozesse warten, ich will lediglich nicht dass alles gleichzeitig losrennt und sich gegenseitig ausbremst.
 
.xsession-errors wird ja auch von dem Windowmanager befüllt (üblicherweise wenn dieser etwas in stderr schreibt) und nicht von slim. slim hat ein eigenes Log in /var/log/slim.log. Versuch doch mal anstatt "(sleep 17 && gajim >/dev/null 2>&1) &" einmal "(sleep 17 && gajim >> $HOME/gajim.log) &". Vielleicht sagt der gajim Dir dann was er hat. Du solltest auch gucken, ob er die Zeile überhaupt erreicht mit echo in irgendwelche Log-Dateien. Vielleicht gibt Dir das etwas Infos.
 
Wenn man stdout/stderr von Gajim in Datei leitet ist es das gleiche wie nach /dev/null, dann läuft er ja problemlos, kann mir also auch nix sagen. ;-)
Wenn die Session durch Slim gestartet wurde, dann läuft der Gajim an, man sieht das daran dass im Panel ein Platz für das Icon reserviert wird, aber das Icon fehlt und es passiert auch nichts wenn man an die Stelle klickt.

Desweiteren zickt Thunderbird rum wenn die Session über Slim gestartet wurde. Ab und zu (völlig unreproduzierbar) friert die Grafikausgabe von Thunderbird ein. Thunderbird läuft aber ansonsten normal weiter, das merkt man daran dass neue Mails per Klang benachrichtigt werden. Man sieht nur nix.

Was .xsession-errors betrifft, die wird nie angelegt wenn die Openbox Session durch Slim gestartet wurde. Eigentlich müsste die immer da sein, denn irgendwelche Warnings erzeugen GTK-Anwendungen ja immer. Irgendwas stimmt da nicht im Zusammenwirken von Slim und Openbox Session.

An dem xauth liegt es nicht, wie ich zuerst vermutet hatte. Wenn ich in .xinitrc ein "xhost +" rein mache, besteht das Problem weiterhin.

Ich frag mich was Slim anders machen kann als xdm?

P.S.: ich muss dazu sagen dass ich 11-CURRENT verwende, vielleicht gibt es da ja auch einen Bug der unter 10.1 nicht ist.
 
Es ist nicht das gleiche, denn Du siehst dann welche Fehlermeldungen gajim schreibt. Wenn irgendwas grundsätzlich nicht stimmt, dann gibt es Fehler im X-Protokoll (hofft man). Nach der zweiten Beschreibung sieht es eher nach sehr groben Problemen aus, die nicht nur gajim betreffen.
 
Hallo JochenF,
Wenn die Session durch Slim gestartet wurde, dann läuft der Gajim an, man sieht das daran dass im Panel ein Platz für das Icon reserviert wird, aber das Icon fehlt und es passiert auch nichts wenn man an die Stelle klickt.
Das Problem tritt also auf, wenn die Session läuft.
Dann starte doch die Anwendungen einfach mal in einem Xterm und schau die Ausgabe an.
Vielleicht fehlt eine Library, weil ein Suchpfad umgebogen wurde...

Grüßle Jürgen
 
??? wait ist doch was völlig anderes als sleep. Wait wartet auf Hintergrundprozesse bis die fertig sind. Sleep wartet eine bestimmte Zeit.
Ich will nicht auf bestimmte Prozesse warten, ich will lediglich nicht dass alles gleichzeitig losrennt und sich gegenseitig ausbremst.

Sorry, hatte gedacht, das du wait haben möchtest von wegen "&&" was im prinzip ähnlich ist.
 
Das Problem tritt also auf, wenn die Session läuft.
Dann starte doch die Anwendungen einfach mal in einem Xterm und schau die Ausgabe an.
Aus dem Terminal raus startet Gajim einwandfrei, ohne Fehlermeldung. Nur aus dem Openbox autostart oder Menu heraus startet es zwar (sieht man mit ps) erscheint aber nicht im Panel. Und zwar nur wenn die Session mit Slim gestartet wurde. Mit xdm läuft es ohne Problem.

Mir ist das jetzt zu blöd. Ich definiere slim als "kaputt" und nutze es nicht mehr. Ganz einfach.
 
Und ich sage Dir, das liegt eher nicht an Slim (alles was es nach einem erfolgreichen Login macht, ist eine Session zu starten und dann geht er schlafen), sondern viel wahrscheinlicher an irgendwelchen Kaputtheiten drumherum (ungenügend robuste Einstellungen, Pfade, Umgebungen, Login-Einstellungen wie login.conf usw... viel zu viel um sich da einen Überblick zu schaffen).

Aber lassen wir's. Ich habe ja auch meine "Software-Lieblinge", die ich instinktiv nicht benutzen will.
 
Und ich sage Dir, das liegt eher nicht an Slim (alles was es nach einem erfolgreichen Login macht, ist eine Session zu starten und dann geht er schlafen), sondern viel wahrscheinlicher an irgendwelchen Kaputtheiten drumherum (ungenügend robuste Einstellungen, Pfade, Umgebungen, Login-Einstellungen wie login.conf usw... viel zu viel um sich da einen Überblick zu schaffen).
Das könnte ja nur an irgendwelchen Environment-Variablen liegen und ist leicht überprüft:

Einmal mit xdm einloggen und:
env >~/env.sh

Jede Zeile um einen export ergänzen und das ganze im .xinitrc vor dem "exec openbox-session" sourcen. Damit wäre das Environment identisch hergestellt. Dann mit slim einloggen: keine Änderung, gleiches Problem. Und nun?
 
Ich habe Dir vor allem gesagt, dass Du den Start von der Applikation loggen sollst. Das bedeutet: nicht in /dev/null umleiten, sondern in eine Datei. Ich möchte gerne wissen, ob sich die Applikation über etwas beschwert.

Außerdem ist das falsch. Du sollst env in eine Datei ausgeben in .xinitrc, einmal von xdm aus und einmal (an der gleichen Stelle!) von slim aus.
 
Und ich habe glaub ich schon erwähnt dass Gajim ganz normal startet wenn man sein stdout/stderr umleitet. Deswegen loggt der dann auch keine Fehler in die Datei. Ich vermute daher dass der Slim stdout/stderr falsch verbindet. Es gibt ja unter Slim auch keine .xsession-error Datei.

Ich könnte mir noch vorstellen dass es einen Unterschied macht, ob Slim über /etc/ttys gestartet wurde, oder als Service. Kann ich aber erst nächste Woche ausprobieren.
 
Also über ttys sollte man den auf jeden Fall nicht starten. Er hat nämlich eine rc.d-Datei zum Starten. Das kann natürlich daran liegen.
 
Ist richtig, kann man. Ich fürchte nur, dass es kaum jmd macht, was die Methode evtl. eher als "wenig getestet" markieren würde.
 
So, ich konnte das Problem auf meinem Zweitrechner nachstellen. Der Bug trtitt nur auf wenn slim über /etc/ttys gestartet wurde. Es liegt also, wie ich vermutet hatte, daran wohin stdout und stderr verbunden sind. Der xdm leitet die ja nach .xsession-errors um. Slim macht das nicht. Unklar ist immer noch wo slim die hinleitet. Etwa nach /dev/null? Jedenfalls auch nicht nach /var/log/slim.log. Irgendwas macht slim da falsch. stdout/stderr meiner Session möchte ich schon gern irgendwo sehen.
 
Ich hab jetzt mal die Filedescriptoren 0-2 von openbox bei den verschiedenen Varianten untersucht. (BTW: wie kann man in diesem Forum eigentlich Codeblöcke einfügen?)

xdm via ttys:
openbox 788 jochen 0r VCHR 0,17 0t0 17 /dev/null
openbox 788 jochen 1w VREG 0,105 1127 9238059 /usr/home/jochen/.xsession-errors
openbox 788 jochen 2w VREG 0,105 1127 9238059 /usr/home/jochen/.xsession-errors

slim via tty:
openbox 793 jochen 1u PIPE 0xfffff800046a68b8 16384 ->0xfffff800046a6a18
openbox 793 jochen 2u PIPE 0xfffff800046a6a18 0 ->0xfffff800046a68b8

slim via rc:
openbox 792 jochen 0u VCHR 0,17 0t0 17 /dev/null
openbox 792 jochen 1u VCHR 0,17 0t0 17 /dev/null
openbox 792 jochen 2u VCHR 0,17 0t0 17 /dev/null

Diese beiden Pipe-Descriptoren finde ich sonst nirgends, die scheinen ungültig zu sein. Deswegen bleibt wohl alles hängen was versucht auf stdout/stderr zu schreiben. Jetzt könnte man natürlich im xinitrc beim "exec openbox-session" eine Umleitung angeben, aber die Anweisungen vorher haben trotzdem ein Problem.
 
Nochwas fällt mir auf: Slim startet noch 2 Daemons, console-kit-daemon und polkitd. Sind diese *kits nicht irgendwelches Linux-Zeugs?
 
Zurück
Oben