Discussion:
Skript beim Logout ausführen lassen
(zu alt für eine Antwort)
Jan Teune
2006-07-25 12:48:09 UTC
Permalink
Hallo NG,
eine kurze Frage, ich würde gern mal wissen, wie ich beim logout
noch ein zusätzliches Skript ausführen kann, welches mir bestimmte
Prozesse killt...

Mein System ist ein Debian-2.6.18-rc2 und als Window-Manager wird
fluxbox verwendet. Zudem verwende ich die bash...

falls mir jemand helfen könnte, wäre das sehr gut :-)

Danke im Voraus

Jan
Knut Rauscher
2006-07-25 13:00:39 UTC
Permalink
Jan Teune <***@uni-duesseldorf.de> writes:

Hi,
Post by Jan Teune
Mein System ist ein Debian-2.6.18-rc2 und als Window-Manager wird
fluxbox verwendet. Zudem verwende ich die bash...
,----
| ~/.bash_logout
| The individual login shell cleanup file, executed when a login
| shell exits
`----

Schöne Grüße

sendet Knut
Jan Teune
2006-07-25 13:07:16 UTC
Permalink
Hallo Knut,
sorry, ich hatte vergessen zu erwähnen, das ich das schon getestet
hatte. Ich hab $HOME/.bash_logout angelegt, den entsprechenden Befehl
eingetragen und beobachtet, was bei einem Logout passiert. Leider
wurde der entsprechende Prozess nicht abgebrochen. Syntaktisch
ist jedoch alles korrekt...in der bash ausgeführt wird der Prozess
auch getötet, nur nicht beim Logout. Falls du noch ne Idee hast,
immer her damit :-)
Danke nochmal wieder im Voraus..

Jan
Post by Knut Rauscher
Hi,
Post by Jan Teune
Mein System ist ein Debian-2.6.18-rc2 und als Window-Manager wird
fluxbox verwendet. Zudem verwende ich die bash...
,----
| ~/.bash_logout
| The individual login shell cleanup file, executed when a login
| shell exits
`----
Schöne Grüße
sendet Knut
Christian Schneider
2006-07-25 14:29:57 UTC
Permalink
Post by Jan Teune
Hallo Knut,
Wer? <http://got.to/quote/> lesen. Bitte.
Post by Jan Teune
sorry, ich hatte vergessen zu erwähnen, das ich das schon getestet
hatte. Ich hab $HOME/.bash_logout angelegt, den entsprechenden Befehl
eingetragen und beobachtet, was bei einem Logout passiert. Leider
wurde der entsprechende Prozess nicht abgebrochen. Syntaktisch
ist jedoch alles korrekt...in der bash ausgeführt wird der Prozess
auch getötet, nur nicht beim Logout. Falls du noch ne Idee hast,
immer her damit :-)
$ man bash | less -p "^INVOCATION"
[...]
When a login shell exits, bash reads and executes commands from the
file ~/.bash_logout, if it exists.
[...]
die ~/.bash_logout, wird nur von Loginshells gelesen. Wenn Du innerhalb
einer bereitslaufender "Session" eine Shell startest (mit "bash" oder
"xterm"), dann wird die ~/.bash_logout beim Beenden dieser Shell nicht
gelesen.
Erstell eine fuer Dich passende ~/.bash_logout, logge Dich aus und wenn
Du Dich dann erneut einloggst, wird diese Datei auch abgearbeitet
(sofern die Bash eine Login Shell ist). Ausserdem bist Du hier OT. Die
Experten sitzen in de.comp.os.unix.shell (fup dahin).
[...]

ToFu saugt; unterlass das bitte.
--
A: TOFU! A: TOFU!
F: Was ist die aergerlichste Sache auf Q: What is the most annoying thing
Mailinglisten und Newsgruppen? on mailinglists and newsgroups?
TOFU - Text Oben, Fullquote Unten TOFU - Text Over, Fullquote Under
Heike C. Zimmerer
2006-07-25 14:41:35 UTC
Permalink
Post by Jan Teune
hatte. Ich hab $HOME/.bash_logout angelegt, den entsprechenden Befehl
eingetragen und beobachtet, was bei einem Logout passiert. Leider
wurde der entsprechende Prozess nicht abgebrochen. Syntaktisch
ist jedoch alles korrekt...in der bash ausgeführt wird der Prozess
auch getötet, nur nicht beim Logout.
Du solltest vielleicht genauer darlegen, was genau für Dich ein Logout
ist. Das Logout aus der bash ist es also nicht. Ist es die
Beendigung von X, das Herunterfahren Deines Window-Managers, das
Logout aus der Konsole, ...? Je nach Vorgang wirst Du die Antworten
auch dort finden.

Und bitte kein ToFu (http://einklich.net/usenet/zitier.htm).
Joachim Moskalewski
2006-07-25 15:10:53 UTC
Permalink
Jan Teune <***@uni-duesseldorf.de> schrieb:

[ kaputtes Quoting repariert ]
Post by Jan Teune
Post by Knut Rauscher
| ~/.bash_logout
[ ... ]
Post by Jan Teune
sorry, ich hatte vergessen zu erwähnen, das ich das schon getestet
hatte. Ich hab $HOME/.bash_logout angelegt, den entsprechenden Befehl
eingetragen und beobachtet, was bei einem Logout passiert. Leider
wurde der entsprechende Prozess nicht abgebrochen. Syntaktisch
ist jedoch alles korrekt...
Vermutlich weil der Login gar keine Bash aufrief, sondern bereits in X11
geschah?

In diesem Fall hilft Dir evtl. die Doku Deines Login Managers (xdm, kdm,
gdm, wdm usw. Fragen bitte in den zugehörigen Groups, keiner ist
speziell für Linux relevant) und dessen Möglichkeiten.

Oftmals existiert auch ein Shellscript Namens ~/.xsession; Hast Du es
nicht, kannst Du es einfach anlegen. Beim Start Deiner X-Session als
User wird dieses (und manchmal auch ~/.xinitrc) abgearbeitet; Ergo steht
darin meist als letzte Zeile der Window Manager, der die Session
kontrolliert: Ist das Script durch, ist auch des Users X-Session durch -
wenn Du also den letzten Prozess wie z.B. den Window Manager beendest,
geschieht ein Logout bei grafischem Login (bzw. ohne solchigen geht's
zurück auf die Textkonsole). Und das kannst Du für Deine Wünsche
nutzen - einfach zuletzt eintragen, was nach dem Beenden der
eigentlichen Oberfläche geschehen soll. Bsp:

------------------------------------------------------------------------

#!/bin/bash
xsetroot -solid black
xsetroot -cursor_name top_left_arrow &
numlockx on &
xset s off &
xscreensaver -no-splash &
exec blackbox
killall fetchmail

------------------------------------------------------------------------

HTH,
:) Jo
Fritz Schadt
2006-07-25 20:18:44 UTC
Permalink
[...]
Post by Joachim Moskalewski
Oftmals existiert auch ein Shellscript Namens ~/.xsession; Hast Du es
nicht, kannst Du es einfach anlegen. Beim Start Deiner X-Session als
User wird dieses (und manchmal auch ~/.xinitrc) abgearbeitet; Ergo steht
darin meist als letzte Zeile der Window Manager, der die Session
kontrolliert: Ist das Script durch, ist auch des Users X-Session durch -
wenn Du also den letzten Prozess wie z.B. den Window Manager beendest,
geschieht ein Logout bei grafischem Login (bzw. ohne solchigen geht's
zurück auf die Textkonsole). Und das kannst Du für Deine Wünsche
nutzen - einfach zuletzt eintragen, was nach dem Beenden der
------------------------------------------------------------------------
#!/bin/bash
xsetroot -solid black
xsetroot -cursor_name top_left_arrow &
numlockx on &
xset s off &
xscreensaver -no-splash &
exec blackbox
killall fetchmail
Das Beispiel tut nur leider nicht das Beschriebene, denn
aus 'man bash'
exec [-cl] [-a name] [command [arguments]]
If command is specified, it replaces the shell. No new process is
created. The arguments become the arguments to command. If the -l
option is supplied, the shell places a dash at the beginning of the
zeroth arg passed to command. This is what login (1) does.

d.h., blackbox ersetzt die bash und das 'killall fetchmail' wird nie
ausgeführt.

HTH
fs
--
In those days he was wiser than he is now -- he used to frequently take
my advice.
-- Winston Churchill
Oliver B. Warzecha
2006-07-25 14:53:47 UTC
Permalink
Post by Jan Teune
sorry, ich hatte vergessen zu erwähnen, das ich das schon getestet
hatte. Ich hab $HOME/.bash_logout angelegt, den entsprechenden Befehl
eingetragen und beobachtet, was bei einem Logout passiert. Leider
wurde der entsprechende Prozess nicht abgebrochen. Syntaktisch
ist jedoch alles korrekt...in der bash ausgeführt wird der Prozess
auch getötet, nur nicht beim Logout. Falls du noch ne Idee hast,
immer her damit :-)
[snip]
Post by Jan Teune
Post by Knut Rauscher
,----
| ~/.bash_logout
| The individual login shell cleanup file, executed when a login
| shell exits
`----
Guck noch mal genau hin. ;-) Die Datei wird nur beim Beenden
einer _Login_-Shell ausgeführt. Das ist nicht jede bash, man
kann es aber mit --login erzwingen. (Man beachte, daß dann auch
noch andere Dinge passieren, siehe man-page)

OBW
Loading...