Od dłuższego czasu walę w nie głową. Ma to związek z tym pytaniem . Chciałbym dowiedzieć się dokładnie, co się stanie, kiedy zdecyduję się zamknąć mój system Linux z GUI. Wydaje się, że jest to słabo (jeśli w ogóle) udokumentowane.
Idealnie, mam nadzieję na odpowiedź agnostyczną na DE i OS. Poza tym interesuje mnie szczególny przypadek Mandrivy 2010.1 i Debiana 6.x (Squeeze) i 7.0 (Wheezy) z uruchomionym Gnome. (Jeśli zwracasz szczególną uwagę, tak, to Gnome 2 i Gnome 3)
Zasadniczo chciałbym wiedzieć, które polecenie / skrypt / sekwencja skryptów jest uruchamiana po naciśnięciu „Zamknij” lub „Uruchom ponownie”, aby móc zmodyfikować ich zachowanie. Niektóre posty na forum, na które patrzyłem, sugerują hakowanie, /etc/polkit-1/*
ale ta struktura katalogów jest na przykład tylko szkieletem mojej skrzynki Debian (Squeeze).
Czy ktoś może pomóc?
EDYTOWAĆ
Co próbowałem do tej pory
- Zastąpiłem
shutdown
plik wykonywalny własnym skryptem. To nie działa: kiedy naciskamshutdown
Gnome wylogowuje się bez wykonywania skryptu. - Próbowałem edytować menu Gnome 2. Bez radości: opcje „Zamknij”, „Wyloguj się” i „Ekran blokady” nie pojawiają się w edytorze menu.
- Patrząc
/usr/share/menu
, nic tam nie pomaga.
Możliwe drogi rozwiązania
strace
w opcjach GUI (czy to w ogóle możliwe?)- Patrząc na
shutdown
kod źródłowy - Patrząc na
gnome-session
kod źródłowy
Aktualizacja
Zgodnie z moimi komentarzami do odpowiedzi poniżej, przejrzałem polkit
akcje poniżej /usr/share/polkit-1/actions/
i znalazłem (w pliku org.freedesktop.consolekit.policy
) akcję wywoływaną, org.freedesktop.consolekit.system.stop-multiple-users
która rzuca wiadomość
System policy prevents stopping the system when other users are logged in
Myślę (ze względu na org.freedesktop.*
konwencję nazewnictwa), że jest to jakiś sygnał wysyłany do DM przez D-BUS. Co więcej, ten komunikat pojawia się podczas próby graficznego wyłączenia, gdy inni użytkownicy są zalogowani, więc mechanizm, który go uruchamia, musi być tym samym mechanizmem, gdy „GUI” lub „Wyłącz” jest wybrane z GUI.
Czy ktoś może potwierdzić / obalić? Czy istnieje możliwość przechwycenia tego sygnału lub modyfikacji go?
/etc/init.d/rc.local
aby wywołać skrypt podczas zatrzymywania .