当前位置: 首页>>技术问答>>正文


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

, , , ,

问题描述

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

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

有没有某种”watchdog”程序关注一些distro-critical程序?监控Nautilus似乎不是Linux内核问题,所以我只是想知道这里发生了什么?

最佳解决方案

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

GNOME provides tools to allow your application to run smoothly from session to session. Users can log out with running applications and have those applications fully restored when they log back in. – from the Gnome Documentation Library

除此之外,会话管理器试图让它的Nautilus实例运行。 Nautilus必须向会话管理员注册 – 默认情况下会这样做;当然,有一个命令行选项可以禁用它:

nautilus --sm-disable

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

killall -9 nautilus

次佳解决方案

正如其他人所提到的,gnome-session自动重新生成nautilus过程。它也适用于gnome-panelgnome-wm(它依次启动用户配置的窗口管理器,通常为compizmetacity)。

可以通过desktop > gnome > session > required_components gconf键自定义此行为。

command-line,nautilus,process,session,ubuntu

如果您希望在没有GNOME面板的情况下运行并仅使用Docky或AWN,则编辑这些值非常有用。

第三种解决方案

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

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

第四种方案

奇帕卡& andrewsomething都很接近…… 🙂

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

如果要通过此机制启动(重新)启动nautilus(或您配置的任何”filemanager component”),可以将值更改为[windowmanager,panel]。 (您可以在登录期间通过将其添加到会话start-up程序列表中来启动它,但它不会再自动重新启动。)

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

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

第五种方案

Nautilus正在重新启动,因为它已经绘制了桌面。输入

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

在一个终端,它停止这样做,然后杀死后不应该回来。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6629.html,未经允许,请勿转载。