是什么导致Nautilus每当我杀死它时重新启动?


28

在htop中,我杀死了Nautilus,并在一秒钟之内用新的PID回来了!

重新启动的Nautilus将显示在“进程”列表中,但是在我手动启动Nautilus之前没有GUI。我听说过Nautilus与台式机配合使用的情况……也许就是原因(?)。

是否有某种“看门狗”程序关注某些发行关键的程序?监视Nautilus似乎不是Linux内核问题,所以我只是想知道这里发生了什么?

Answers:


20

Gnome使用会话管理器gnome-session)跟踪其需要执行的操作。它负责启动整个会话,所有子进程,还原状态并在您注销时保存它。

GNOME提供了一些工具,使您的应用程序在各个会话之间都能平稳运行。用户可以注销正在运行的应用程序,并在重新登录后完全还原这些应用程序。–Gnome文档库

会话管理器除其他外,尝试使其Nautilus实例保持运行状态。Nautilus必须为此注册会话管理器-默认情况下会这样做;自然地,有一个命令行选项可以禁用它:

nautilus --sm-disable

您可以通过运行以下命令彻底终止正在运行的Nautilus进程:

killall -9 nautilus


谢谢Stefano ..您给了很好的概述,这就是我所追求的,但是通常情况下,一种解释可能会提出另一个问题...我现在要提一个问题:我跑了nautilus --sm-disable(用户和须藤)。这可能已禁用了与会话管理器的连接,但是会话管理器在重新启动nautilus时一直保持正确状态(进程列表中显示“ nautilus --sm-disable”)...因此,仅当该参数有效时,此参数才有效是在会话启动时(相对于会话中期)应用的,并且在禁用时是否有严重后果?(我认为自动安装将消失,但是...?
Peter.O 2010年

好吧,nautilus --sm-disable在一个未公开记录的功能中。因此很难说。但是请记住,鹦鹉螺一被杀死就会立即重新启动,您必须使用此参数启动它的第一个实例。killall nautilus && nautilus --sm-disable将无法正常工作。该命令不会禁用正在运行的nautilus实例的功能。您可以尝试结合我和安德鲁普罗斯的答案。;-)
Stefano Palazzo

使用killall -9 nautilus
RolandiXor

nautilus --sm-disable在Ubuntu 15.10(Unknown option --sm-disable)中不起作用。也没有Gnome会话。
Hubro '16

11

正如其他人提到的那样,gnome-sessionnautilus过程会自动重生。它还针对gnome-panelgnome-wm(依次启动由用户配置的窗口管理器,通常是compizmetacity)这样做。

此行为可通过desktop > gnome > session > required_componentsgconf键进行自定义。

required_components gconf键

例如,如果您想在没有GNOME面板的情况下运行并且仅使用Docky或AWN,则编辑这些值会很有用。


6

gnome-session负责重生鹦鹉螺。作为其在进程树中的父级,没有其他进程可以重新生成它。

ps -eaH 向您展示了此处摘录的分层过程树:

    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 ...这是一个很有信息的清单(-eaH)。
Peter.O 2010年

5

奇帕卡(Chipaca)和安德鲁普罗斯(andrewsomething)都在附近... :)

/desktop/gnome/session/required_components_list项列出应该由被监测的“组件” gnome-session,当他们离开,并自动重新启动。GNOME 2的默认值是[windowmanager,panel,filemanager]

如果要防止nautilus(或已配置的任何“ filemanager组件”)通过此机制启动(重新启动),可以将值更改为[windowmanager,panel]。(您仍然可以通过将其添加到会话启动程序列表中来使其在登录过程中启动,但是它将不再自动重新启动。)

/desktop/gnome/session/required_components在具有组件名称的键下定义了每个组件启动什么应用程序(带有哪些命令行参数)。此处列出的组件可能比/desktop/gnome/session/required_components_list键中使用的组件更多。

现在,在使用鹦鹉螺的情况下,默认情况下,当鹦鹉螺未运行时,它将在后台启动,并且如果/apps/nautilus/preferences/show_desktop设置了键,它也会显示桌面。也可以告诉nautilus在命令行参数下表现不同。


这是正确的答案。
特拉维斯·沃特金斯

2

Nautilus正在重新启动,因为您已在其绘制桌面。输入

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

在终端上让它停止这样做,然后杀死它后就不应该再回来了。


show_desktop = False选项并不能阻止重新启动鹦鹉螺......所以我认为必须鹦鹉螺比只是做更多幕后...顺便说一下,我喜欢这个选项,因为我不保留任何东西在桌面上,它恼人的是,当屏幕截图保存其影像存在(它似乎没有任何办法改变这一点)....而且刚刚注意到另一种选择我真的很喜欢show_advanced_permissions True...谢谢:)
Peter.O

0

总共要做:

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

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

改成:

X-GNOME-AutoRestart = false

(在以下位置找到它:https : //bbs.archlinux.org/viewtopic.php?id=119254

就这样...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.