Ho sbattuto la testa contro questo per un po 'di tempo ormai. È legato a questa domanda . Vorrei scoprire esattamente cosa succede quando scelgo di chiudere il mio box Linux dalla GUI. Questo sembra essere scarsamente documentato (se non del tutto).
Idealmente, spero in una risposta agnostica tra DE e OS. A parte questo, sono interessato al caso specifico di Mandriva 2010.1 e Debian 6.x (Squeeze) e 7.0 (Wheezy) che eseguono tutti Gnome. (Se stai prestando molta attenzione, sì, questo è Gnome 2 e Gnome 3)
Fondamentalmente, vorrei sapere quale comando / script / sequenza di script viene avviato quando premo "Chiudi" o "Riavvia" in modo da poter modificare il loro comportamento. Alcuni post sul forum che ho visto suggeriscono l'hacking, /etc/polkit-1/*ma questa struttura di directory è solo uno scheletro sulla mia casella Debian (Squeeze), per esempio.
Qualcuno può aiutare?
MODIFICARE
Quello che ho provato finora
- Sostituito l'
shutdowneseguibile con una mia sceneggiatura. Questo non funziona: quando premoshutdownGnome esco senza eseguire il mio script. - Ho provato a modificare il menu di Gnome 2. Nessuna gioia: le opzioni "Spegni", "Disconnetti" e "Blocca schermo" non compaiono nell'editor di menu.
- Guardato
/usr/share/menu, niente di utile lì.
Possibili strade per la soluzione
stracele opzioni della GUI (è anche possibile?)- Guardando
shutdownil codice sorgente - Guardando
gnome-sessionil codice sorgente
Aggiornare
Secondo i miei commenti sulla risposta di seguito, ho esaminato le polkitazioni sotto /usr/share/polkit-1/actions/e ho trovato (nel file org.freedesktop.consolekit.policy) un'azione chiamata org.freedesktop.consolekit.system.stop-multiple-usersche lancia il messaggio
System policy prevents stopping the system when other users are logged in
Sto pensando (a causa della org.freedesktop.*convenzione di denominazione) che si tratta di una sorta di segnale inviato al DM tramite D-BUS. Inoltre, questo messaggio appare quando si tenta di arrestare graficamente mentre altri utenti sono connessi, quindi il meccanismo che lo attiva deve essere lo stesso meccanismo attivato quando si seleziona "Spegni" o "Spegni" dalla GUI.
Qualcuno può confermare / confutare? C'è la possibilità di intercettare in qualche modo questo segnale o modificarlo?
/etc/init.d/rc.localper chiamare uno script quando viene arrestato .