I recently started using CentOS. I went to try to use the killall
utility but found it missing, with me receiving a command not found
message when trying to use it. How can I get this functionality on my system so that I can, for instance, kill all processes whose names match a pattern?

- 809
3 Answers
The pkill
utility is a much better alternative to killall
. killall
is not portable as the behavior of the command is very different across OSs. pkill
is portable and behaves the same everywhere. It's also a lot more flexible as it provides a lot of different ways of matching the processes. It also shares the same matching behavior and arguments as the pgrep
utility, which allows you to see what processes would be matched and signaled without actually signalling them.
Usage:pkill foo
(which would be the same as killall foo
)
PSmisc contains the killall
utility, along with a few other small, useful tools. It can be added simply with
yum install psmisc

- 809
Further to Patrick's solution, the functionality of the killall command can be replicated with the following:
pkill -15 [process name]
For example, to kill all running memcached processes, one would write the following:
pkill -15 memcached
The '-15' is the numeric representation of a SIGTERM POSIX signal. To get a list of all POSIX signals which can be fired at a process, use the following command:
kill -l
This will return the following table:
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
Further information on what each signal does can be found here.

- 56,709
- 26
- 150
- 232

- 41
-
1
-
See also https://unix.stackexchange.com/questions/281439/why-should-i-not-use-kill-9-sigkill – Kusalananda Apr 05 '18 at 12:07
-
1
-
1Why did you edit just to remove 'Hope this helps!' from the end, @Rui F Ribeiro? Are there community rules against trying to be polite? – Daniel Kay Apr 16 '19 at 13:15
killall
. – exebook Nov 14 '17 at 18:40pgrep
support the-q
option for being quiet though. – Kusalananda Apr 16 '18 at 19:15