CentOS - commande killall (pour tuer tous les processus avec des noms correspondant à un modèle donné)


18

J'ai récemment commencé à utiliser CentOS. Je suis allé essayer d'utiliser l' killallutilitaire mais je l'ai trouvé manquant, et j'ai reçu un command not foundmessage lorsque j'essayais de l'utiliser. Comment puis-je obtenir cette fonctionnalité sur mon système afin de pouvoir, par exemple, tuer tous les processus dont les noms correspondent à un modèle?

Réponses:


24

L' pkillutilitaire est une bien meilleure alternative à killall. killalln'est pas portable car le comportement de la commande est très différent d'un OS à l'autre. pkillest portable et se comporte de la même manière partout. Il est également beaucoup plus flexible car il offre de nombreuses façons de faire correspondre les processus. Il partage également le même comportement de correspondance et les mêmes arguments que l' pgreputilitaire , ce qui vous permet de voir quels processus seraient mis en correspondance et signalés sans les signaler réellement.

Utilisation: pkill foo(qui serait la même que killall foo)


2
Je pense que cette réponse aurait été meilleure si elle avait montré comment exactement on peut l'utiliser pour remplacer killall.
exebook

Cependant, toutes les implémentations de pgrepprise en charge ne sont -qpas silencieuses.
Kusalananda

serait également mieux s'il décrivait de quel paquet il fait partie
Xalorous

21

PSmisc contient l' killallutilitaire, ainsi que quelques autres petits outils utiles. Il peut être ajouté simplement avec

yum install psmisc

2

Suite à la solution de Patrick, la fonctionnalité de la commande killall peut être répliquée avec les éléments suivants:

pkill -15 [process name]

Par exemple, pour tuer tous les processus memcached en cours d'exécution, on écrirait ce qui suit:

pkill -15 memcached

Le «-15» est la représentation numérique d'un signal SIGTERM POSIX. Pour obtenir une liste de tous les signaux POSIX pouvant être déclenchés sur un processus, utilisez la commande suivante:

kill -l

Cela renverra le tableau suivant:

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL      10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

Vous trouverez plus d'informations sur ce que fait chaque signal ici .


Notez que killallenvoie le TERMsignal par défaut, non KILL.
Kusalananda


1
Bon point. Édité.
Daniel Kay

Pourquoi avez-vous modifié juste pour supprimer "J'espère que cela vous aidera!" de la fin, @Rui F Ribeiro? Existe-t-il des règles communautaires pour ne pas être poli?
Daniel Kay

0

J'imagine que l'alternative systemd est systemctl halt(abréviation de systemctl isolate halt.target)?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.