Що змушує Nautilus перезапускатися щоразу, коли я його вбиваю?


28

У htop я вбиваю Nautilus, і протягом однієї секунди він повертається, з новим PID!

Перезапущений Nautilus відображається у списку процесів, але не має графічного інтерфейсу, поки я вручну не запускаю Nautilus ... Я чув, що згадка про Nautilus працює в режимі замка на робочому столі ... можливо, це причина (?).

Чи є якась програма "сторожового", що стежить за деякими критично важливими програмами? Моніторинг Nautilus не здається проблемою з ядром Linux, тому мені просто цікаво, що тут відбувається?

Відповіді:


20

Gnome використовує диспетчер сесій ( gnome-session), щоб відслідковувати, що йому потрібно робити. Він несе відповідальність за відображення всього сеансу, всіх підпроцесів, відновлення стану та збереження його під час виходу з системи.

GNOME надає інструменти, які дозволяють вашій програмі безперебійно працювати з сеансу на сеанс. Користувачі можуть вийти із запущених програм і повністю відновити ці програми, коли вони знову входять. - З бібліотеки документації Gnome

Крім усього іншого, менеджер сеансів намагається утримати його екземпляр Nautilus. Для цього Nautilus повинен зареєструватися у менеджера сеансів - що робить це за замовчуванням; природно, є можливість командного рядка відключити його:

nautilus --sm-disable

Ви можете назавжди вбити запущений процес Nautilus:

killall -9 nautilus


Дякую Стефано. Ви дали хороший огляд, і це те, про що я пішов, але, як це часто трапляється, пояснення може викликати ще одне питання ... Я зараз згадаю: я побіг nautilus --sm-disable(користувач і судо). Можливо, це відключило підключення до менеджера сеансу, але менеджер сеансу зберігав право під час перезавантаження nautilus (з "nautilus --sm-disabled", що відображається у списку процесів) ... Отже, цей параметр набирає чинності лише в тому випадку, якщо він застосовується при запуску сеансу (проти середини сеансу), і чи є серйозні наслідки при відключенні? (Я думаю, що автоматичне встановлення зникне, але ...?
Peter.O

Ну, nautilus --sm-disableв недокументованій особливості . Тож важко сказати. Але майте на увазі, що nautilus перезапуститься, як тільки він буде вбитий , вам доведеться запустити перший екземпляр цього параметра з цим параметром. killall nautilus && nautilus --sm-disableне буде працювати. Команда не відключає функцію для запущених екземплярів nautilus. Ви можете спробувати поєднати відповідь моїх та інших. ;-)
Стефано Палацо

використання killall -9 nautilus.
RolandiXor

nautilus --sm-disableне працює в Ubuntu 15.10 ( Unknown option --sm-disable). Також немає сесії Gnome.
Хубро

11

Як уже згадували інші, процес gnome-sessionповторного впорядкування nautilusавтоматично. Це також робиться для gnome-panelі gnome-wm(що, в свою чергу, запускає керований користувачем вікон, як правило, compizабо metacity).

Така поведінка налаштовується за допомогою desktop > gnome > session > required_componentsклавіш gconf.

must_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 ... Це досить інформативний перелік (-EH).
Пітер.O

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ключ встановлений, він також показує Desktop. Можна також сказати nautilus поводитися по-різному з параметрами командного рядка.


Це правильна відповідь.
Тревіс Уоткінс

2

Nautilus перезапускається, оскільки у вас він малює робочий стіл. Введіть

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

в терміналі, щоб він перестав це робити, і він не повинен повертатися після вбивства.


Цей show_desktop = Falseваріант не заважає Nautilus перезапускатися ... тому я думаю, що Nautilus повинен робити більше за кадром, ніж просто це ... До речі, цей варіант мені подобається , оскільки я нічого не тримаю на робочому столі, і це дратує, коли Скріншот зберігає свої зображення там (здається, це не має ніякого способу змінити) .... Також просто помітив ще один варіант, який мені дуже подобається : 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 )

це все...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.