Was veranlasst Nautilus neu zu starten, wenn ich es töte?

28

In htop töte ich Nautilus und innerhalb einer Sekunde ist es zurück, mit einer neuen PID!

Der neu gestartete Nautilus wird in der Prozessliste angezeigt, hat jedoch keine GUI, bis ich Nautilus manuell starte. Ich habe gehört, dass Nautilus im Gleichschritt mit dem Desktop arbeitet. Vielleicht ist das der Grund (?).

Gibt es eine Art "Watchdog" -Programm, mit dem Sie einige distro-kritische Programme überwachen können? Das Überwachen von Nautilus scheint kein Linux-Kernelproblem zu sein. Ich frage mich also, was hier passiert.

Peter.O
quelle

Antworten:

20

Gnome verwendet einen Session Manager ( gnome-session), um zu verfolgen, was zu tun ist. Es ist dafür verantwortlich, die gesamte Sitzung und alle Unterprozesse aufzurufen, den Status wiederherzustellen und ihn zu speichern, wenn Sie sich abmelden.

GNOME bietet Tools, mit denen Ihre Anwendung von Sitzung zu Sitzung reibungslos ausgeführt werden kann. Benutzer können sich mit laufenden Anwendungen abmelden und diese Anwendungen vollständig wiederherstellen, wenn sie sich erneut anmelden. - aus der Gnome-Dokumentationsbibliothek

Unter anderem versucht der Session Manager, seine Instanz von Nautilus am Laufen zu halten. Nautilus muss sich dafür beim Session Manager registrieren - was standardmäßig der Fall ist. Natürlich gibt es eine Befehlszeilenoption, um es zu deaktivieren:

nautilus --sm-disable

Sie können einen laufenden Nautilus-Prozess endgültig beenden, indem Sie Folgendes ausführen:

killall -9 nautilus

Stefano Palazzo
quelle
Danke Stefano. Sie haben einen guten Überblick gegeben, und das war es, wonach ich gesucht habe, aber wie es oft der Fall ist, kann eine Erklärung weitere Fragen aufwerfen ... Ich werde jetzt eine erwähnen: Ich bin gelaufen nautilus --sm-disable(Benutzer und sudo). Dies hat möglicherweise die Verbindung zum Sitzungsmanager deaktiviert, aber der Sitzungsmanager hat den Neustart von nautilus fortgesetzt (wobei "nautilus --sm-disable" in der Prozessliste angezeigt wird) ... Also wird dieser Parameter nur wirksam, wenn er aktiv ist wird beim Sitzungsstart (im Vergleich zur Sitzungsmitte) angewendet. Gibt es schwerwiegende Konsequenzen, wenn deaktiviert? (Ich denke, die automatische Montage würde verschwinden, aber ...?
Peter.O
Nun, nautilus --sm-disablein einem undokumentierten Feature . Das ist schwer zu sagen. Beachten Sie jedoch, dass Nautilus neu gestartet wird, sobald es beendet ist . Sie müssen die erste Instanz mit diesem Parameter starten. killall nautilus && nautilus --sm-disablewird nicht funktionieren. Der Befehl deaktiviert die Funktion nicht für die ausgeführten Instanzen von nautilus. Sie könnten versuchen, meine und die Antwort von andrewsomething zu kombinieren. ;-)
Stefano Palazzo
verwenden killall -9 nautilus.
RolandiXor
nautilus --sm-disablefunktioniert nicht in Ubuntu 15.10 ( Unknown option --sm-disable). Es gibt auch keine Gnome-Sitzung.
Hubro
11

Wie bereits erwähnt, gnome-sessionwird der nautilusProzess automatisch neu gestartet . Dies geschieht auch für gnome-panelund gnome-wm(was wiederum den vom Benutzer konfigurierten Fenstermanager normalerweise compizoder startet metacity).

Dieses Verhalten kann über die desktop > gnome > session > required_componentsgconf-Tasten angepasst werden .

required_components gconf-Schlüssel

Das Bearbeiten dieses Werts kann nützlich sein, wenn Sie beispielsweise das GNOME-Bedienfeld nicht verwenden und nur Docky oder AWN verwenden möchten.

undetwas
quelle
6

gnome-sessionist verantwortlich für das Respawnen von Nautilus. Als übergeordnetes Element in der Prozessstruktur gibt es keinen anderen Prozess, der es erneut erzeugen könnte.

ps -eaH zeigt Ihnen den hier abgebildeten hierarchischen Prozessbaum:

    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
quelle
Danke msw ... Das ist eine ziemlich informative Auflistung (-eaH).
Peter.O
5

Chipaca & andrewsomething sind beide nah ... :)

Der /desktop/gnome/session/required_components_listSchlüssel listet die "Komponenten" auf, die überwacht gnome-sessionund beim Beenden automatisch neu gestartet werden sollen. Der Standardwert für GNOME 2 ist ungefähr [windowmanager,panel,filemanager].

Wenn Sie verhindern möchten, dass Nautilus (oder eine von Ihnen konfigurierte "Dateimanagerkomponente") mit diesem Mechanismus neu gestartet wird, können Sie den Wert auf ändern [windowmanager,panel]. (Sie können es auch während der Anmeldung starten lassen, indem Sie es zur Liste der Startprogramme der Sitzung hinzufügen. Es wird jedoch nicht mehr automatisch neu gestartet.)

Welche Anwendung (mit welchen Befehlszeilenparametern) für jede Komponente gestartet wird, wird /desktop/gnome/session/required_componentsin einem Schlüssel mit dem Namen der Komponente definiert. Es ist möglich, dass hier mehr Komponenten aufgelistet sind, als im /desktop/gnome/session/required_components_listSchlüssel verwendet werden.

Im Falle von Nautilus wird es jetzt standardmäßig im Hintergrund gestartet, wenn es noch nicht ausgeführt wird. Wenn der /apps/nautilus/preferences/show_desktopSchlüssel gesetzt ist, wird auch der Desktop angezeigt . Es ist auch möglich, nautilus anzuweisen, sich mit Befehlszeilenparametern anders zu verhalten.

JanC
quelle
Das ist die richtige Antwort.
Travis Watkins
2

Nautilus wird neu gestartet, da Sie den Desktop zeichnen müssen. Eingeben

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

in einem Terminal, damit es aufhört, das zu tun, und es sollte dann nicht zurückkommen, nachdem es getötet hat.

Chipaca
quelle
Die show_desktop = FalseOption hindert Nautilus nicht daran, neu zu starten ... also denke ich, dass Nautilus hinter den Kulissen mehr als nur das tun muss ... Übrigens, ich mag diese Option, da ich nichts auf dem Desktop behalte und es ärgerlich ist , wenn Screenshot seine Bilder dort gespeichert (es scheint keinen Weg , um dies zu ändern) .... auch ich eine andere Wahl habe gerade bemerkt , wirklich wie : show_advanced_permissions True... Thanks :)
Peter.O
0

Insgesamt tun:

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

und

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

ändern:

X-GNOME-AutoRestart = false

(gefunden unter: https://bbs.archlinux.org/viewtopic.php?id=119254 )

das ist alles...

O...
quelle