Package gnome-watchdog - cleans up gnome user session
Philipp Hanselmann
philipp at schoolnet.na
Sun Nov 4 21:26:53 GMT 2007
Hi,
Like we have only P4 server which supporting up to 20 thin clients
I did a lot of tricks to get Edubuntu working including sound!
So I had the issues that a user gnome session doesn't get cleaned up
after a user logged out ...
For that I wrote the program gnome-watchdog which is working up to now
with Feisty ( with deacticated ldm encryption LDM_DIRECTX = True)
You can download this package from here:
www.morokeni.ch/edubuntu/gnome-watchdog_0.9.2_i386.deb
I hope it's useful. For more information about the package see below ...
Philipp
----------------------------------------------------------------------------------------------------
gnome-watchdog - cleans up gnome user session of Edubuntu and checks if a
user is logged in already.
----------------------------------------------------------------------------------------------------
It happens with Edubuntu that user processes continue to live even
though the user
is not logged in anymore. This is not a really nice thing because these
zombie processes
running in the background consume memory and cpu from the server. Now
the question is,
how can we get rid of this processes?
Let us have a look at the current situation:
There are different use cases which cause these user zombie processes:
(1) Users are lazy. Instead of logging out properly, they just press the
power button (hard reset)
(2) The user is using CTRL-ALT-BACKSPACE (killing the X11 session) to
log out.
(3) User is logged out normally but some faulty program does not get
terminated.
(4) A program is freezing the thin client completely which forces the
user to reboot
the thin client.
(5) In some cases it can even be that these remaining processes prevent
a user login with
the same user.
These scripts ensure that a faulty gnome user session gets cleaned up
when a user isn't
logged in anymore ...
How does it work:
During a gnome login process a watchdog script (called gnome-watchdog)
starts. The special
thing about this script is that it starts with the command nohup. In
this way the
gnome-watchdog script ignores any hangup signals.
This means this script survives even if the user is logging out in the
normal way (3) or
unexpectedly (1,2,4+5).
Basically the script is waiting in a loop until the process gnome-panel
gets terminated.
In case this happens, he waits a certain period to be sure that the
process doesn't get
restarted by his parent process. If this does not happen the script
assumes that the user
is not logged in anymore.
Now the cleaning process takes place. The scripts checks if any user
processes under this user id
are still running. If yes, he kills all these user processes.
Based of some testing with these methods you should get 99% of the cases
2 and 3 solved.
Unfortunately, if the user is doing a hard reset (1) it will happen that
almost all processes including
the gnome-panel process will run as zombie processes.
Sometimes it happens that after a while, the gnome-panel gets
terminated. This will cause the
remaining processes to get killed by the watchdog script.
When the process gnome-panel of this user survives, it can happen that
the same user
will not be able to login anymore (5).
Now these scripts will also have a solution but it must be manually
activated.
For this just create the file like this:
touch /etc/check_previous_login
When this feature is activated, the script gnome-watchdog-start will
check during a user login
if a gnome-panel is already running.
If yes, the user will be notified by a message box that a previous
session is still running. The
user has now the option to kill this previous session before he logs in.
These facts may also be important to know:
- All actions from the scripts get logged to the syslog daemon
(/var/log/messages).
- The script does not get executed for user root, schoolnet and teacher
(see script).
- The script will only get started when you choose gnome as a session
and when you are doing
a thin client login.
Please note that these scripts have only been tested for a few weeks.
Until now we have had good
experiences with them.
However be warned that they may still have some faults. If you use them
and your system and
your server start to kill users without notice perhaps it is better to
remove them before doing
further troubleshooting.
--
SchoolNet NA - Youth Empowerment through Information and Communication Technology
SchoolNet Namibia provides sustainable, low cost technology solutions and internet access, as well as technical support, training services and rich educational content to schools, community-based educational organisations, and educational practitioners throughout Namibia.
www.schoolnet.na
toll free number: 0800 005793
More information about the edubuntu-users
mailing list