Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tuer des process lancés depuis plus de x minutes

3 réponses
Avatar
fabrice regnier
Salut la liste ;)

J'aimerai =E9crire un script qui me dit si tel process est d=E9marr=E9
depuis plus de x minutes et le tuer.
Pour un d=E9but j'ai pens=E9 =E0 un: ps -eo pid,comm,etime | grep
"ma_commande"
Mais ensuite, je bloque. Comment r=E9cup=E9rer les lignes qui ont un
temps sup=E9rieur =E0 5 minutes ?

merci et a+

f=2E

3 réponses

Avatar
Paulo Oníoneg
------=_Part_77565_17968761.1161188516515
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Salut,

Je ne sais pas si c'est une belle solution, mas voilà.


IFS="
"

for a in `ps -eo pid,time `
do
export PID_TO_KILL=$( echo $a | awk '{print $1}' )
R=$( echo $a | awk '{print $2}' )
echo $R | awk -F":" '{ H=$1*60 ; M=$2*1 ; S=$3/60 ; if ((H+M+ S)>5)
print ENVIRON["PID_TO_KILL"]" -" H+M+S}'
done





Le 18 Oct 2006 07:04:48 -0700, fabrice regnier a éc rit
:

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 ?

merci et a+

f.






--
--
Paulo Genoíno
http://dancaquebec.blogspot.com/

------=_Part_77565_17968761.1161188516515
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Salut,<br><br>Je ne sais pas si c'est une belle solution, mas voilà.<br>< br><br>IFS=&quot;<br>&quot;<br><br>for a in `ps -eo pid,time `<br>do<br>& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; export PID_TO_KILL=$( echo $a | awk '{print $1}' )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R=$( ec ho $a | awk '{print $2}' )
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $R | awk -F&quot;:&quot ; '{ H=$1*60 ; M=$2*1 ; S=$3/60 ; if ((H+M+S)&gt;5) print ENVIRON[&qu ot;PID_TO_KILL&quot;]&quot; -&quot; H+M+S}'<br>done<br><br><br><br><br><br> <div><span class="gmail_quote">Le 18 Oct 2006 07:04:48 -0700,
<b class="gmail_sendername">fabrice regnier</b> &lt;<a href="mailto:reg "></a>&gt; a écrit :</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Salut la liste ;)<br><br>J'aimerai écrire un script qui me dit si tel pro cess est démarré<br>depuis plus de x minutes et le tuer.<br>Pour un d ébut j'ai pensé à un: ps -eo pid,comm,etime&nbsp;&nbsp;| grep<br>&quo t;ma_commande&quot;<br>
Mais ensuite, je bloque. Comment récupérer les lignes qui ont un<br>tem ps supérieur à 5 minutes ?<br><br>merci et a+<br><br>f.<br><br></blockq uote></div><br><br clear="all"><br>-- <br>--<br>Paulo Genoíno<br><a hre f="http://dancaquebec.blogspot.com/">
http://dancaquebec.blogspot.com/</a>

------=_Part_77565_17968761.1161188516515--


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Vanuxem Grégory
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)-)?((dd):)?(dd):dd/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...


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Vanuxem Grégory
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)-)?((dd):)?(dd):dd/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)-)?((dd):)?(dd):dd/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...




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact