script for cleaning up zombie user processes at the end of the day?

Clay Berlo clay.berlo at dsbn.edu.on.ca
Fri Jan 19 15:39:44 GMT 2007


Good analysis!  Your rundown of what the script does is fairly accurate.

The $3 bit was a little confusing for me, too, until I played around
with a similar script.  Basically, the getent lists the users in a
user:passwordtoekn:uid kind of format, so when passed to awk with the
-F: (setting : as a field delimiter), the 3rd field is the UID.  After
you have the UIDs you're working with, it cycles through to see who's
logged in with a current session (thus the gnome-panel stuff) and kills
any bonobo process not attached to an active session.  (I was having a
problem with bonobo processes not being killed off.)

slay might work, but I imagine you'd have to follow a similar logic to
make sure you're not killing off any root processes or active users.

On Thu, 2007-18-01 at 15:14 -0800, john wrote:

> Thanks Clay. I appreciate the script. I am going to try this out. But
> before I do, I hope you can help me to understand what is going on a
> little better? Anyone who feels like chiming in would be quite
> welcome.
> 
> 
> 1) basically I think this script is looping through the password db by
> calling the program 'getent' and piping the results to awk. 
> 
> 2) Awk is applying a separator : and then something magical happens
> (what is $3?) Somehow uids are getting assigned to this variable?
> 
> 3 Then somehow (related to $3) we look for uids above 999 and pass
> them to $1 which will print them to standard output (i.e the tty from
> which this script is executed, if executed by hand). Is there more
> going on here?
> 
> 4) then the script echos the result of the variable $user and runs
> 'pgrep -u' against the expanded variable $user for any gnome-panel and
> bobono processes owned by that user
> 
> 5) the program loops until done.
> 
> Sorry, I just like to understand what I am doing before I do it. Will
> killing zombie type gnome-panel and bonobo stuff, clean up leftover
> processes like firefox, games etc?
> 
> TIA!
> 
> John
> 
> 
> On 1/18/07, Clay Berlo <clay.berlo at dsbn.edu.on.ca> wrote:
> 
>         Funny, I just ran into the same kind of problem myself not so
>         long ago.  Talked to they guys on IRC and was given the
>         following:
>         
>         for user in $(getent passwd | awk -F: '$3 > 999 {print $1}');
>         do echo $user; pgrep -u ${user} gnome-panel || pkill -u
>         ${user} bonobo; done
>         
>         Now, my system is running the "usual" gnome stuff, so this
>         works for killing off processes from anyone not logged in.  If
>         you're using KDE or XFCE, you'll have to scan for something
>         other thant gnome-panel.
>         
>         Oliver Grawert has suggested this should go into the ldm
>         script somehow.  As I'm not familiar with how to play around
>         with that file, I just stuck in a cron job to run hourly.
>         
>         
>         
>         On Wed, 2007-17-01 at 14:30 -0800, john wrote:
>         
>         > Hello all,
>         > 
>         > I'm running ltsp 4.2 on Ubuntu LTS 6.06 using win2k3 AD for
>         > auth. I find that at the end of the day I have a lot of
>         > leftover student user processes running, and I'd like to
>         > have a little script that kills them all after school. Does
>         > anyone have something ready-made or do I need to brew one
>         > myself? 
>         > 
>         > TIA!
>         > 
>         > John
>         
>         -- 
>         Clay Berlo <clay.berlo at dsbn.edu.on.ca>
>         DSBN Technical Services
> 
> 

-- 
Clay Berlo <clay.berlo at dsbn.edu.on.ca>
DSBN Technical Services
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ubuntu.com/archives/edubuntu-users/attachments/20070119/e50382be/attachment.htm 


More information about the edubuntu-users mailing list