[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 à 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'

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: