Petite astuce pour celles et ceux qui voudraient utiliser la commande killall y compris sur des machines dépourvues de ce programme fort pratique.

killall c'est quoi ?

Commençons par le commencement : killall sert à terminer tous les processus répondant à un certain nom (passé en argument).

Si par exemple je veux effectuer un kill sur tous les processus java, plutôt que de récupérer tous les PID (processus ID) de java et de lancer une boucle qui vient "killer" ce programme, je peux lancer la commande suivante :

killall java

killall n'est pas installé comment faire ?

Si killall n'est pas installé et / ou si vous ne souhaitez pas que votre script dépende de la présence de ce dernier vous pouvez utiliser la suite de commandes suivantes (pensez à remplacer __PROCESSUS__ par le nom du programme à terminer) :

ps aux | grep __PROCESSUS__ | grep -v grep | awk '{print $2}' | xargs kill

Petite explication de texte :

  • on commence par récupérer l'ensemble des processus de la machine avec ps
  • on matche sur le nom du processus qui nous intéresse grâce à grep
  • notre grep risquant d'apparaître dans la liste des process incriminés, on l'exclut via l'option -v
  • awk nous permet ensuite de n'afficher que le deuxième champs (correspondant au PID)
  • enfin on lance un kill sur l'ensemble des PID trouvés via le très pratique xargs
Tag(s) : #bash
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :