web-dev-qa-db-fra.com

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

J'ai récemment commencé à utiliser CentOS. Je suis allé essayer d'utiliser l'utilitaire killall mais je l'ai trouvé manquant, avec moi recevant un command not found message lorsque vous essayez 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?

20
Michael Ohlrogge

L'utilitaire pkill est une bien meilleure alternative à killall. killall n'est pas portable car le comportement de la commande est très différent d'un OS à l'autre. pkill est 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'utilitaire pgrep , qui vous permet de voir quels processus seraient mis en correspondance et signalés sans les signaler réellement.

Usage:pkill foo (qui serait identique à killall foo)

27
Patrick

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

yum install psmisc
23
Michael Ohlrogge

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

De plus amples informations sur ce que fait chaque signal peuvent être trouvées ici .

2
Daniel Kay

J'imagine que l'alternative systemd est systemctl halt (court pour systemctl isolate halt.target)?

0
Xalorous