Ich habe jetzt schon eine ganze Weile meinen Kopf dagegen geschlagen. Es hängt mit dieser Frage zusammen . Ich möchte genau wissen, was passiert, wenn ich meine Linux-Box über die GUI herunterfahre. Dies scheint (wenn überhaupt) schlecht dokumentiert zu sein.
Im Idealfall hoffe ich auf eine DE- und OS-agnostische Antwort. Ansonsten interessiert mich der spezielle Fall von Mandriva 2010.1 und Debian 6.x (Squeeze) und 7.0 (Wheezy), auf denen Gnome läuft. (Wenn Sie genau hinschauen, ist das Gnome 2 und Gnome 3)
Grundsätzlich möchte ich wissen, welcher Befehl / welches Skript / welche Sequenz von Skripten gestartet wird, wenn ich "Herunterfahren" oder "Neustart" drücke, damit ich ihr Verhalten ändern kann. Einige Forenbeiträge, die ich mir angesehen habe, schlagen Hacking vor, /etc/polkit-1/*
aber diese Verzeichnisstruktur ist nur ein Grundgerüst auf meiner Debian (Squeeze) -Box.
Kann jemand helfen?
BEARBEITEN
Was ich bisher ausprobiert habe
- Die
shutdown
ausführbare Datei wurde durch ein eigenes Skript ersetzt. Dies funktioniert nicht: Wenn ich aufshutdown
Gnome drücke, meldet sich Gnome ab, ohne mein Skript auszuführen. - Es wurde versucht, das Gnome 2-Menü zu bearbeiten. Keine Freude: Die Optionen "Herunterfahren", "Abmelden" und "Bildschirm sperren" werden im Menü-Editor nicht angezeigt.
- Gesehen
/usr/share/menu
, nichts hilfreiches da.
Mögliche Lösungswege
strace
die GUI-Optionen (ist das überhaupt möglich?)- Seht
shutdown
euch den Quellcode an - Seht
gnome-session
euch den Quellcode an
Aktualisieren
Gemäß meinen Kommentaren zur Antwort unten habe ich die polkit
Aktionen unter untersucht /usr/share/polkit-1/actions/
und (in der Datei org.freedesktop.consolekit.policy
) eine Aktion namens gefunden org.freedesktop.consolekit.system.stop-multiple-users
, die die Nachricht auslöst
System policy prevents stopping the system when other users are logged in
Ich denke (aufgrund der org.freedesktop.*
Namenskonvention), dass dies eine Art Signal ist, das über den D-BUS an den DM gesendet wird. Darüber hinaus wird diese Meldung angezeigt, wenn versucht wird, das System grafisch herunterzufahren, während andere Benutzer angemeldet sind. Daher muss der auslösende Mechanismus derselbe sein, der ausgelöst wird, wenn "Herunterfahren" oder "Ausschalten" auf der GUI ausgewählt wird.
Kann jemand bestätigen / widerlegen? Gibt es eine Möglichkeit, dieses Signal abzufangen oder zu modifizieren?
/etc/init.d/rc.local
um ein Skript aufzurufen, wenn es angehalten wird .