Andreas Pakulat <[EMAIL PROTECTED]> writes: >On 26.Oct 2004 - 02:06:34, Helmut Waitzmann wrote: >> Andreas Pakulat <[EMAIL PROTECTED]> writes: >> >> >Schreib sie in die $HOME/.bashrc, dann werden sie immer eingelesen... >> >> Nein. Dann werden sie von allen interaktiven nicht-login-shells >> eingelesen; nicht-interaktive nicht-login-shells lesen kein "~/.bashrc". > >Und? Die lesen auch keine .profile oder /etc/profile .
Genau. Darum ist es Unsinn, zu sagen "Nimm ~/.bashrc, das wird immer eingelesen." Denn das stimmt bei nicht-interaktiven shells nicht. Und weil das erste Shell-Skript, das bei einem grafischen login unter der Kennung des angemeldeten Benutzers gestartet wird, nun einmal von einem nicht-interaktiven shell gelesen wird (interaktive shells gibt es dann erst in Terminal-Emulatoren), kann man ihm nur auf die Weise eine ordentliche Konfiguration verpassen, dass man es zum login-shell macht. Die Auswahl "KDE" im Sessions-Menà des GDM, "/etc/gdm/Sessions/KDE", macht es richtig: Das shell script beginnt mit folgender Zeile: #!/bin/bash -login Das ist ein (nicht-interaktives) Login-bash-Skript, das beim Start zunÃchst /etc/profile und danach "$HOME/.bash_profile" oder "$HOME/.profile" liest. >> >Nein, du kannst den ganzen Kram doch in eine ~/.bashrc tun und die >> >noch in der .bash_profile sourcen. Dadurch kommst du bei jeder! Shell in >> >den Genuss deiner Konfiguration. >> >> Nein. Nicht-interaktive nicht-login-shells bleiben da auÃen vor (siehe >> manual bash(1)). > >Ja, aber die kannst du sowieso nicht weiter konfigurieren, weder mit >*profile, nocht mit *bashrc. Genau. Du hast es ja doch verstanden. Darum halte ich beim startup nicht-interaktive nicht-login-shells eines Fehlerberichtes wert. >Nicht-interaktive nicht-login-shells sind im Normalfall Skripte, die >saemtliche Umgebungsvariablen selbst setzen muessen... Eigentlich nicht. Eher sind es Skripte, die ihre Umgebungsvariablen bereits fertig in der Umgebung geliefert bekommen. >> >Ich denke immernoch, das *dm keine Loginshell aufmachen, KDE aus der GDM-Auswahl ist ein Login-Shell, die anderen AuswahlmÃglichkeiten (Debian, Gnome, Xsession) allerdings nicht. >> >da ja saemtliche Prozesse danach direkt an init haengen... >> >> Ich sehe zwischen "keine Loginshell" und "sÃmtliche Prozesse direkt an >> init hÃngen" keinen Zusammenhang. ErklÃrst Du ihn mir? > >Klaro: Hab mich da etwas ungluecklich ausgedrueckt... Was ich meinte >war: Der X11-Prozess haengt an init. Wenn man mittels startx den >Xserver startet sieht das ganze so aus: > >init >| >|- bash -- startx -- xinit -- XFree86 >.. | > |- x-session-manager Und das bash ist ein login shell und baut eine ordentliche Umgebung fÃr startx usw. auf. Da ist also alles in Ordnung. >Beim Login mittels eines Display-Managers haengt der X11-Server am >Displaymanager: > >init > ââkdmâââXFree86 > â ââkdmâââx-session-managâââgnome-settings- > â ââkwrapper > â ââssh-agent > >kdm, wiederum wird von init ausgefuehrt, als letztes der Init-Skripte >und benutzt wiederum soweit ich das sehe eine nicht-interaktive >nicht-login-shell. Wenn da also kdm oder x-session-manag (ksmserver?) keine "$HOME/.profile" entsprechende KonfigurationsmÃglichkeit bietet, sieht es in der Tat nicht gut aus. -- Wenn Sie mir E-Mail schreiben, stellen | When writing me e-mail, please Sie bitte vor meine E-Mail-Adresse | precede my e-mail address with meinen Vor- und Nachnamen, etwa so: | my full name, like Helmut Waitzmann <[EMAIL PROTECTED]>, (Helmut Waitzmann) [EMAIL PROTECTED]