#1 Le 03/06/2010, à 08:00
- Aerandir
[Résolu] Lister les threads qui ont plus de 3h ?
Bonjour,
J'aimerais arriver à trouver les threads qui sont plus vieilles que (par exemple) 3h, afin de les tuer si elle contienne PHP.
Malheureusement en lisant le man de ps je n'ai pas trouver d'option relative à l'âge de la thread.
Quelqu'un aurait-il une idée ?
Merci d'avance
Dernière modification par Aerandir (Le 04/06/2010, à 07:50)
Hors ligne
#2 Le 03/06/2010, à 13:30
- sputnick
Re : [Résolu] Lister les threads qui ont plus de 3h ?
for i in $(pgrep php); do # pour tous les PIDs php trouvés
v=$(stat -c %Y /proc/$i) # on récupère la date en secondes depuis EPOCH du dossier dans /proc/PID
n=$(date +%s) # on récupère la date courante en secondes depuis EPOCH
if (( n - v > 3600*3 )); then # si $n - $v est supérieur à 3h
kill $i && continue # on le kill avec le signal par défaut -15 et on continue à la prochaine itération
sleep 3 # si le kill n'a pas réussi, on attends 3 secondes...
kill -9 $i # ...et on lance un kill -9 ( dernier recours )
fi
done
Dernière modification par sputnick (Le 03/06/2010, à 15:51)
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. Confucius
https://sputnick.fr
Hors ligne
#3 Le 03/06/2010, à 15:31
- Aerandir
Re : [Résolu] Lister les threads qui ont plus de 3h ?
Ahhh
Génial ! J'avais pas pensé à passer par /proc/*. Je pensais à une commande, mais cette solution est simple et très ingénieuse.
Bravo, et merci beaucoup
Hors ligne
#4 Le 03/06/2010, à 15:49
- sputnick
Re : [Résolu] Lister les threads qui ont plus de 3h ?
Edit suite à l'oubli du test de la date courante
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. Confucius
https://sputnick.fr
Hors ligne