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

Pet*_*r.O 28 session command-line nautilus process

在 htop 中,我杀死了 Nautilus,在一秒钟内,它又回来了,并带有一个新的 PID!

重新启动的 Nautilus 显示在进程列表中,但在我手动启动 Nautilus 之前没有 GUI...我听说 Nautilus 与桌面同步工作...也许这就是原因(?)。

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

Ste*_*zzo 20

Gnome 使用会话管理器( gnome-session) 来跟踪它需要做什么。它负责启动整个会话、所有子进程、恢复状态并在您注销时保存它。

GNOME 提供了一些工具来让您的应用程序在一个会话之间平稳运行。用户可以使用正在运行的应用程序注销,并在他们重新登录时完全恢复这些应用程序。 –来自Gnome 文档库

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

nautilus --sm-disable

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

killall -9 nautilus


and*_*ing 11

正如其他人所提到的,自动gnome-session重新生成nautilus进程。它也为gnome-paneland gnome-wm(它依次启动用户配置的窗口管理器,通常为compizor metacity)这样做。

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

required_components gconf 键

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


msw*_*msw 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
Run Code Online (Sandbox Code Playgroud)


Jan*_*anC 5

Chipaca 和 andrewsomething 都很接近... :)

/desktop/gnome/session/required_components_list键列出了应由 监视的“组件” gnome-session,并在它们退出时自动重新启动。GNOME 2 的默认值类似于[windowmanager,panel,filemanager].

如果您想阻止 nautilus(或您配置的任何“文件管理器组件”)通过此机制(重新)启动,您可以将值更改为[windowmanager,panel]. (当然,您仍然可以通过将其添加到会话启动程序列表来在登录期间启动它,但它不会再自动重新启动。)

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

现在,在 nautilus 的情况下,默认情况下,当它尚未运行时,它会在后台启动,如果/apps/nautilus/preferences/show_desktop设置了该键,它还会显示桌面。也可以通过命令行参数告诉 nautilus 以不同的方式运行。