GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tuer les processus antérieurs à t ?

Solution 1 :

GNU Killall peut tuer des processus plus anciens qu'un âge donné, en utilisant leur nom de processus.

if [[ "$(uname)" = "Linux" ]];then killall --older-than 1h page.py;fi

Solution 2 :

Grâce à la réponse de Christopher, j'ai pu l'adapter à ce qui suit :

find /proc -maxdepth 1 -user apache -type d -mmin +60 -exec basename {} \; \
| xargs ps | grep page.py | awk '{ print $1 }' | sudo xargs kill

-mmin était la commande de recherche qui me manquait.

Solution 3 :

find ne fonctionne pas toujours, tous les systèmes n'ont pas d'etimes disponibles, et c'est peut-être mon statut de regex newb, mais je ne pense pas que vous ayez besoin de quelque chose de plus :

ps -eo pid,etimes,comm,user,tty | awk '{if ($4 ~ /builder/ && $5 ~ /pts/ && $2>600) print $1}'
  • liste tous les processus et fournit les colonnes PID,ELAPSED(etimes =seconds), COMMAND, USER, TT (merci @ahoffman)
  • avec awk imprimer le PID où la 4ème colonne ($4, USER) contient le texte 'builder', et la 5ème colonne ($5, TT) contient le texte 'pts' et la colonne ELAPSED a une valeur supérieure à 600 sec (merci @ amtd)

vous pouvez ensuite le canaliser pour tuer ou quel que soit votre besoin.

Solution 4 :

# get elapsed time in seconds, filter our only those who >= 3600 sec
ps axh -O etimes  | awk '{if ($2 >= 3600) print $2}'

Si vous voulez, vous pouvez nourrir ps avec la liste des PID à rechercher, par ex. ex. :

ps h -O etimes 1 2 3

Solution 5 :

Je pense que vous pouvez modifier certaines de ces réponses précédentes pour répondre à vos besoins. A savoir :

for FILE in (find . -maxdepth 1 -user processuser -type d -mmin +60)
  do kill -9 $(basename $FILE) # I can never get basename to work with find's exec.  Let me know if you know how!
done

Ou

ps -eo pid,etime,comm | awk '$2!~/^..:..$/ && $3~/page\.py/ { print $1}' | kill -9

Je pense que la seconde peut mieux répondre à vos besoins. La version de recherche finirait par détruire d'autres processus par cet utilisateur


--Christophe Karel


Linux
  1. Que sont les processus zombies et comment trouver et tuer les processus zombies ?

  2. Comment tuer les processus en cours d'exécution sous Linux

  3. Comment supprimer des fichiers de plus de N jours à l'aide de tmpreaper sous Linux

  4. Comment tuer tous les processus d'arrière-plan dans zsh ?

  5. Comment tuer tous les processus PHP-FPM en une seule ligne de commande

Comment tuer les processus zombies dans Ubuntu 20.04 LTS

Comment supprimer des fichiers plus anciens que les jours spécifiés sous Linux

Comment utiliser la commande PS

Comment tuer les processus zombies dans Ubuntu

Comment tuer les processus sous Linux en utilisant kill, killall et pkill

Comment tuer les processus MySQL dans phpMyAdmin