[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: tuer des process lancés depuis plus de x minutes



Le mercredi 18 octobre 2006 à 22:11 +0200, Vanuxem Grégory a écrit :
> Le mercredi 18 octobre 2006 à 07:04 -0700, fabrice regnier a écrit :
> > Salut la liste ;)
> > 
> > J'aimerai écrire un script qui me dit si tel process est démarré
> > depuis plus de x minutes et le tuer.
> > Pour un début j'ai pensé à un: ps -eo pid,comm,etime  | grep
> > "ma_commande"
> > Mais ensuite, je bloque. Comment récupérer les lignes qui ont un
> > temps supérieur à 5 minutes ?
> 
> Allez juste pour le fun, un autre en Perl (en espérant qu'il ne
> contienne pas de bogues :-)
> 
> ps -eo pid,comm,etime --no-headers |perl -ne '/in/ && s/\s*(\d+).*?((\d
> \d)-)?((\d\d):)?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLED
> PROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e'

ps -eo pid,comm,etime --no-headers |perl -ne
'/ma-commande-qui-n_est-pas-entièrement-affiché/ && s/\s*(\d+).*?((\d
\d)-)?((\d\d):)?(\d\d):\d\d/kill(0,$1) && kill(0,$1) && print "KILLED
PROC: $_" if (($3*1440 + $5*60 + $6) >= x)/e'

Comme ça c'est plus clair :-)

Remplacer le deuxième kill(0,$1) par kill(numéro-de-signal,$1) et le x
final par le nombre de minutes (et
ma-commande-qui-n_est-pas-entièrement-affiché bien sur).




Greg
> 
> PS: Tant qu'a utiliser du Perl autant faire le script en Perl...



Reply to: