htop me permet de bien voir les arbres de processus dans le shell. Je peux tuer des processus en appuyant sur F9 (KILL)
puis en sélectionnant le signal (par exemple 15 SIGTERM
) que je veux envoyer à un travail à tuer.
Cependant, cela ne me permet de tuer qu'un processus à la fois. Existe-t-il un moyen de tuer un arbre complet de processus en utilisant htop
?
Vous pourriez détourner
htop
las
commande. Danshtop
, en appuyant surs
invoquestrace -p <the-pid-of-the-selected-process>
.Ensuite, vous pouvez créer une
strace
commande contenant quelque chose comme:Et placez-le dans un répertoire comme
~/.htop-hijack
, et appelez htop comme:Ensuite, appuyer sur
s
invoquerait cette commande au lieu destrace
(vous devez appuyer sur Echap pour revenir à l'écran principal par la suite).la source
Il y avait une fonctionnalité pour cela depuis longtemps, mais elle manquait dans le manuel jusqu'en 2018: appuyez sur la
c
touche pour sélectionner le processus actuellement mis en surbrillance ainsi que tous ses enfants. Ensuite, les opérations qui s'appliquent aux processus sélectionnés (une telle destruction à l'aide de lak
clé) s'appliquent au processus et à ses enfants.Ce n'est pas atomique, cependant. Si de nouveaux enfants sont générés entre le moment où vous appuyez sur
c
et le moment où le noyau a tué tous les processus, ils ne seront pas tués et finiront très probablement par être rattachés au processus d'initialisation. En effet, htop boucle sur les processus sélectionnés et les tue un par un.J'ai proposé un correctif pour ajouter une fonctionnalité de destruction de groupe atomique à htop il y a un certain temps, mais l'implémentation n'était pas suffisamment consensuelle pour pouvoir être fusionnée. Avec lui, il est possible de tuer un groupe de processus entier atomiquement de htop. Ce n'est pas exactement la même chose que de tuer un arbre entier, mais AFAIK, le noyau ne fournit aucun moyen de tuer atomiquement un arbre arbitraire.
la source