Skript beim Abmelden / Herunterfahren von Ubuntu ausführen

18290

Ich möchte einige Befehle jedes Mal ausführen, wenn sich ein Benutzer eines Ubuntu 9.10-Computers abmeldet oder herunterfährt. Was ist der beste Weg, dies zu tun? Jeder Benutzer nutzt gnome, wenn das hilft.

6
Dies sollte wirklich unter der SE-Site "Linux & Unix" sein ... IMHO CenterOrbit vor 13 Jahren 0

5 Antworten auf die Frage

2
Arda Xi

Nach einigem Googeln habe ich festgestellt, wie ein Skript beim Abmelden ausgeführt wird. was bedeutet, das Skript zu $ ​​HOME / .bash_logout hinzuzufügen.

Wenn das nicht funktioniert, fügen Sie hinzu

$ HOME / .bash_logout

nach / etc / gdm / PostSession / Default, damit das Abmeldeskript ordnungsgemäß ausgeführt wird.

Da der Benutzer vor dem Herunterfahren ohnehin abgemeldet ist, sollte dies beide Basen abdecken.

Unter Ubuntu 12.04 ist `/ etc / gdm / PostSession / Default` nicht vorhanden. Wo sonst kann ich mein Skript so platzieren, dass es beim Abmelden sowie beim Herunterfahren ausgeführt wird? Kushal vor 12 Jahren 3
/ etc / gdm3 / ist die geringfügige Korrektur, die erforderlich ist Tim Richardson vor 6 Jahren 0
1
dericybtes

Wenn Sie KDE verwenden (ich verwende Ubuntu mit kdm)

# From the kdm man page # http://manpages.ubuntu.com/manpages/oneiric/man1/kdm.1.html  /etc/kde4/kdm/Xreset - script to run as root after session exits  /etc/kde4/kdm/Xsession - script to run as user after login of user  /etc/kde4/kdm/Xsetup - script to run as root before the login dialog appears  /etc/kde4/kdm/Xstartup - script to run as root before session starts 

Zu testen:

Öffnen Sie die entsprechende Datei

sudo emacs /etc/kde4/kdm/Xreset 

Einen Testbefehl hinzufügen (eine Datei in meinem Heimatverzeichnis erstellen)

touch /home/dericbytes/this-file-was-created-by-xreset 

Dann habe ich mich abgemeldet und wieder angemeldet und überprüft, ob die neue Datei erstellt wurde

ls /home/dericbytes/this* 
1
mpho raf

Wenn Sie nicht an einen bestimmten Display-Manager gebunden sein möchten, können Sie Ihre Skripte unter /etc/X11/Xreset.d/jeder Bedingung als root ausführen, wenn Sie sich von einer xsession abmelden.

Zum Beispiel: Ich möchte, dass sich meine Virtualbox-VMs jedes Mal auf der sicheren Seite befinden, wenn sich ein Benutzer abmeldet. Ich habe also ein Skript, das dies tut. #!/bin/bash su - $USER -c 'vboxmanage list runningvms | cut -d\" -f2 | xargs -I{} vboxmanage controlvm {} savestate'

0
Jay Taylor

Hmm..well wenn Sie "Linux Run Script beim Herunterfahren" googeln, ist das erste Ergebnis ein Beitrag in den Ubuntu-Foren mit Ihrer Antwort :

chmod + x /etc/init.d/foo.sh 

Dadurch können Sie das Skript als Programm ausführen.

Um ein Skript beim Herunterfahren auszuführen, verwenden Sie diese Technik:

Sudo ln -s /etc/init.d/foo.sh /etc/rc0.d/K10rensa.sh Sudo ln -s /etc/init.d/foo.sh /etc/rc6.d/K10rensa.sh 

Hintergrund, wie das funktioniert: Eine Einführung in die Runlevels .

-

Sollte ich nebenbei darauf verzichten, den Leuten Antworten zu geben, wenn klar ist, dass sie noch nicht einmal versucht haben, das Internet zu durchsuchen (ich bin neu hier ...)?

Dies behandelt keine Abmeldeereignisse. Willkommen auch bei SO! Die einzige Zeit, in der die Suche nicht möglich ist, wird zum Problem, wenn jemand eine Frage stellt, die zuvor (hier) eindeutig gestellt wurde. Googeln ist nicht erforderlich. Da der von Ihnen bereitgestellte Link die Frage offensichtlich nicht vollständig beantwortet, ist dies eine gute Chance, dass die OP sie bereits gesehen hat :) Tim Post vor 14 Jahren 1
0

Möglicherweise können Sie die ConsoleKit- Dbus-Schnittstelle verwenden.