Co powoduje, że Nautilus uruchamia się ponownie, ilekroć go zabiję?

28

W htopie zabijam Nautilusa, aw ciągu sekundy wraca z nowym PID!

Zrestartowane Nautilus pokazuje się na liście Procesów, ale nie ma GUI, dopóki ręcznie nie uruchomię Nautilusa ... Słyszałem, że Nautilus działa na wyciągnięcie ręki na pulpicie ... może to jest powód (?).

Czy istnieje jakiś program „stróżujący”, który kontroluje niektóre krytyczne programy? Monitorowanie Nautilusa nie wydaje się problemem z jądrem Linuksa, więc zastanawiam się, co się tutaj dzieje?

Peter.O
źródło

Odpowiedzi:

20

Gnome używa Session Managera ( gnome-session) do śledzenia tego, co musi zrobić. Odpowiada za wywołanie całej sesji, wszystkich podprocesów, przywrócenie stanu i zapisanie go po wylogowaniu.

GNOME zapewnia narzędzia umożliwiające płynne działanie aplikacji między sesjami. Użytkownicy mogą się wylogować przy użyciu uruchomionych aplikacji i całkowicie przywrócić te aplikacje po ponownym zalogowaniu. - z biblioteki dokumentacji Gnome

Między innymi menedżer sesji próbuje utrzymać działanie Nautilusa. Nautilus musi się do tego zarejestrować w menedżerze sesji - co robi to domyślnie; oczywiście istnieje opcja wiersza polecenia, aby ją wyłączyć:

nautilus --sm-disable

Możesz na dobre zabić działający proces Nautilusa, uruchamiając:

killall -9 nautilus

Stefano Palazzo
źródło
Dzięki Stefano .. Dałeś dobry przegląd i właśnie o to mi chodziło, ale jak to często bywa, wyjaśnienie może wywołać inne pytanie ... Wspomnę teraz jedno: Uruchomiłem nautilus --sm-disable(użytkownik i sudo). Mogło to wyłączyć połączenie z menedżerem sesji, ale menedżer sesji nie przestawał zrestartować programu nautilus (z „nautilus --sm-disable” wyświetlanym na liście procesów) ... Tak więc ten parametr działa tylko wtedy, gdy jest stosowany podczas uruchamiania sesji (w porównaniu z sesją w połowie) i czy są jakieś poważne konsekwencje po wyłączeniu? (Myślę, że automatyczne montowanie
zniknęłoby
Cóż, nautilus --sm-disablew nieudokumentowana właściwość . Trudno powiedzieć. Pamiętaj jednak, że nautilus uruchomi się ponownie, gdy tylko zostanie zabity , musisz rozpocząć jego pierwszą instancję przy użyciu tego parametru. killall nautilus && nautilus --sm-disablenie zadziała. Polecenie to nie wyłącza tej funkcji dla uruchomionych instancji programu nautilus. Możesz spróbować połączyć moją odpowiedź z odpowiedzią. ;-)
Stefano Palazzo
użyć killall -9 nautilus.
RolandiXor
nautilus --sm-disablenie działa w Ubuntu 15.10 ( Unknown option --sm-disable). Nie ma też sesji Gnome.
Hubro
11

Jak wspomnieli inni, automatycznie gnome-sessionodradza nautilusproces. Robi to również dla gnome-paneli gnome-wm(co z kolei uruchamia menedżera okien skonfigurowanego przez użytkownika, zwykle compizlub metacity).

To zachowanie można dostosować za pomocą desktop > gnome > session > required_componentsklawiszy gconf.

Wymagane klucze gconf

Edycja tych wartości może być przydatna, jeśli chcesz na przykład uruchomić bez panelu GNOME i używać tylko Docky lub AWN.

andrews coś
źródło
6

gnome-sessionodpowiada za odrodzenie nautilusa. Jako jego rodzic w drzewie procesów, nie ma innego procesu, który mógłby go odrodzić.

ps -eaH pokazuje przedstawione tutaj hierarchiczne drzewo procesów:

    1 ?        00:00:00 init
 1113 ?        00:00:00   gdm-binary
11391 ?        00:00:00     gdm-simple-slav
11396 tty8     00:00:13       Xorg
11465 ?        00:00:00       gdm-session-wor
11629 ?        00:00:00         gnome-session
11746 ?        00:00:02           nautilus
msw
źródło
Dzięki msw ... To całkiem pouczająca lista (-eaH).
Peter.O,
5

Chipaca i andrews coś są blisko ... :)

Do /desktop/gnome/session/required_components_listkluczowych wymienia „elementy”, które powinny być monitorowane przez gnome-session, i ponownie uruchomiony automatycznie, kiedy wyjść. Domyślna wartość dla GNOME 2 jest podobna [windowmanager,panel,filemanager].

Jeśli chcesz uniemożliwić nautilusowi (lub dowolnemu skonfigurowanemu „komponentowi menedżera plików”) uruchomienie (ponowne) za pomocą tego mechanizmu, możesz zmienić wartość na [windowmanager,panel]. (Możesz nadal uruchamiać go podczas logowania, dodając go oczywiście do listy programów do uruchamiania sesji, ale nie będzie już automatycznie ponownie uruchamiany).

Która aplikacja (z parametrami wiersza poleceń) uruchamiana dla każdego komponentu jest zdefiniowana /desktop/gnome/session/required_componentsw kluczu o nazwie komponentu. Możliwe, że w tym miejscu wymieniono więcej komponentów niż użyto w /desktop/gnome/session/required_components_listkluczu.

Teraz, w przypadku nautilusa, domyślnie gdy nie jest jeszcze uruchomiony, zaczyna się w tle, a po ustawieniu /apps/nautilus/preferences/show_desktopklucza wyświetla także pulpit. Można również powiedzieć nautilusowi, aby zachowywał się inaczej z parametrami wiersza poleceń.

JanC
źródło
To jest poprawna odpowiedź.
Travis Watkins
2

Nautilus jest restartowany, ponieważ rysujesz go na pulpicie. Wchodzić

gconftool-2 --type bool --set /apps/nautilus/preferences/show_desktop False

w terminalu, żeby przestał to robić, a potem nie powinien wrócić po zabiciu.

Chipaca
źródło
Ta show_desktop = Falseopcja nie zapobiega ponownemu uruchomieniu Nautilusa ... więc myślę, że Nautilus musi robić więcej za kulisami niż tylko to ... Przy okazji, podoba mi się ta opcja, ponieważ nie trzymam niczego na pulpicie, i to jest denerwujące, gdy Screenshot zapisuje tam swoje zdjęcia (wydaje się, że nie ma sposobu, aby to zmienić) .... Po prostu zauważyłem inną opcję, którą naprawdę lubię : show_advanced_permissions True... Dzięki :)
Peter.O
0

w sumie wykonaj:

gconftool-2 -s -t bool /desktop/gnome/background/draw_background false
gconftool-2 -s -t bool /apps/nautilus/preferences/show_desktop false

i

sudo gedit /usr/share/applications/nautilus.desktop

zmień na:

X-GNOME-AutoRestart = false

(znaleziono na: https://bbs.archlinux.org/viewtopic.php?id=119254 )

to wszystko...

O ...
źródło