РЕШЕНО: logout from gnome

Модератор: Модераторы разделов

Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

РЕШЕНО: logout from gnome

Сообщение vr13 »

достаточно давно наблюдаю такую проблемку: когда я выполняю logout из сессии gnome, несколько процессов моей сессии остаются работать в системе. количество процессов может меняться, но в списке всегда есть dbus. понятно, что остаются процессы, родителем которых является init, а уничножаются при logout все, чей родитель gnome-session. например

Код:

$ ps -ef|grep mueser|grep -v grep mueser 29897 1 0 12:03 ? 00:00:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 8 --session mueser 29918 1 0 12:03 ? 00:00:00 /usr/bin/ssh-agent -- /usr/bin/seahorse-agent --execute gnome-session mueser 29957 1 0 12:03 ? 00:00:00 /usr/libexec/bonobo-activation-server --ac-activate --ior-output-fd=16 mueser 29965 1 0 12:03 ? 00:00:00 /usr/libexec/gvfsd mueser 29974 1 0 12:03 ? 00:00:00 /usr/libexec/gvfsd-trash --spawner :1.5 /org/gtk/gvfs/exec_spaw/0 mueser 30002 1 0 12:03 ? 00:00:00 /usr/libexec/gvfsd-burn --spawner :1.5 /org/gtk/gvfs/exec_spaw/1 mueser 30037 1 0 12:03 ? 00:00:00 /usr/libexec/gnome-vfs-daemon mueser 30056 1 0 12:04 ? 00:00:00 /usr/libexec/gconfd-2 14


можно ли от этого как-нить избавиться? что побуждает некоторые процессы выполнять setsid()?

наблюдается под разными дистрибутивами и версиями gnome. сейчас такое есть на старом suse (gnome 2.16) и gentoo (gnome 2.22.3). от используемого wm вроде не зависит, gnome работает по-умолчанию в системе (gdm). никаких других dm в системе нет

спасибо
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 885
ОС: gentoo

Re: РЕШЕНО: logout from gnome

Сообщение vr13 »

..правда, решено с существенными оговорками:

у gdm есть набор скриптов, которые выполняются в разные моменты времени жизни сессии. находятся в /etc/X11/gdm в каталогах с понятными именами. мной был использован скрипт PostSession/Default. этот скрипт выполняется после того, как завершился SM (gnome-session) и пользователь login завершил работу (PAM). скрипту, который выполняется с правами gdm (root в моем случае) доступно имя этого пользователя в $USER

в моем PostSession/Default есть всего лишь

pkill -u $USER
find /tmp -user $USER -exec rm -rf {} \;
logger "gnome PostSession finished for $USER"

оговорки начинаются тут: если в системе есть еще как-нить зарегистрированный пользователь $USER или демонизированные процессы, которые выполняются с правами $USER, то они, разумеется, также убиваются. в моем случае это роли не играет компьютер - мой десктоп, и ничего "демонического" под графическим account'ом не работает если он не залогинен в системе
Спасибо сказали: