Page 1 of 1

Prozesse beenden

Posted: 2003-07-10 19:16
by p2p
Hallo
lassen sich irgendwie alle Prozesse beenden, deren Script bla.sh heißt oder die länger als 1 Stunde laufen?

Gruß p2p

Re: Prozesse beenden

Posted: 2003-07-10 20:36
by mutombo
prozesse nach namen killen gibts mehrere möglichkeiten.
entweder mit killall name, oder du holst dir per pidof name die pid der prozesse und killst die, oder halt umständlich per ps aux | grep name.

für die zeit wüßt ich jetzt spontan nix einfaches.

Re: Prozesse beenden

Posted: 2003-07-10 21:14
by p2p
gut, danke.

Re: Prozesse beenden

Posted: 2003-07-10 22:12
by captaincrunch
Nur als kleine Idee dazu : Du könntest dir die Zeit beim sp aux durch awk raufiltern, und die zugehörige PID dann anhand einer if-Schleife killen.

Re: Prozesse beenden

Posted: 2003-07-10 22:24
by memphis
Weil jeder weiß, wie das geht
Du könntest dir die Zeit beim sp aux durch awk raufiltern, und die zugehörige PID dann anhand einer if-Schleife killen.

Re: Prozesse beenden

Posted: 2003-07-10 22:52
by rootmaster
ohne gewähr für irgendwas ;)

Code: Select all

#!/usr/bin/perl

    my $process=$ARGV[0];
    my $killtime=$ARGV[1];

if (! $ARGV[0]) {die "KEIN ARGUMENT"}

    my $PSstring=`ps -eo user,pid,stime,time,cmd|grep -v $0`;
    my @PSarray=split(/n/,$PSstring);

foreach(@PSarray) {

($s1,$s2,$s3,$s4,$s5)=split(/ +/,$_,5);

 if ($s5=~/$process/){

        my $pid=$s2;
        my $stime=$s3;
         ($sh,$sm)=split(":",$stime);
        my $start=$sh*60+$sm;
        my $ktime=`date +"%H:%M"`;
         ($kh,$km)=split(":",$ktime);
        my $stop=$kh*60+$km;

            if ($stime=~/[a-z]/i){  # gestartet tag vorher
                $start=0;
            }
            my $dtime=$stop-$start;
            if ($dtime>=$killtime){ # prozess zu alt
                `kill -9 $pid`;
            }
 }
}
aufruf:
/pfad/zu/killscript prog_name zeit_intervall_in_minuten

wird kein zeit-intervall angegeben, werden alle prozesse mit prog_name gekillt ;)

"back to the roots"

Re: Prozesse beenden

Posted: 2003-07-11 08:27
by captaincrunch
Weil jeder weiß, wie das geht
1. Sind wir hier ja schließlich nicht im Newbie-Forum, und
2. hat ein bisschen selbst nachlesen / probieren noch niemandem geschadet ... ;)