This solution seems to kill anything, here's a snippet of the log. As you can see, it's hitting things low idle times. (I of course commented out the kill line)
mmorgan killing process id PID 80350 on pts/0 because minutes equal 1 CLanko killing process id PID 109034 on pts/1 because minutes equal 0 lestas killing process id PID 17490 23800 51560 on pts/2 because minutes equal 36 ruthw killing process id PID 24992 26024 30064 on pts/3 because minutes equal 17 annap killing process id PID 28626 34956 51884 on pts/4 because minutes greater than 60 1:35 annap killing process id PID 22890 40942 115930 on pts/5 because minutes equal 7 -----Original Message----- From: John W. Krahn [mailto:[EMAIL PROTECTED]] Sent: Wednesday, June 12, 2002 9:18 PM To: [EMAIL PROTECTED] Subject: Re: Killing Idle Users "John W. Krahn" wrote: > > #!/usr/bin/perl -w > use strict; > > my $results = '/home/danb/killemresults'; > open RES, '>>', $results or die "Cannot open $results: $!"; > print "\n" . localtime() . "\nStarting\n"; > > for my $user ( map [ (split)[0,1,4] ], grep m|\bpts/|, `w -l` ) { > # print RES "$user->[1]\n"; > my $pid = `ps -t $user->[1] -o pid`; > print RES "$user->[0]\n"; > print RES "killing process id $pid on $user->[1] because minutes "; > print RES $user->[2] =~ /:/ ? 'greater than 60' : 'equal', " $user->[2]\n"; > kill 9, $pid; > } Sorry, there could be multiple pids, so it should be: for my $user ( map [ (split)[0,1,4] ], grep m|\bpts/|, `w -l` ) { # print RES "$user->[1]\n"; my @pids = grep s/\D+//g&&/\d/, `ps -t $user->[1] -o pid`; print RES "$user->[0]\n"; print RES "killing process id @pids on $user->[1] because minutes "; print RES $user->[2] =~ /:/ ? 'greater than 60' : 'equal', " $user->[2]\n"; kill 9, @pids; } John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]