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?
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
)
PSmisc contient l'utilitaire killall
, ainsi que quelques autres petits outils utiles. Il peut être ajouté simplement avec
yum install psmisc
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 .
J'imagine que l'alternative systemd est systemctl halt
(court pour systemctl isolate halt.target
)?