CentOS-killall命令(杀死名称与给定模式匹配的所有进程)


18

我最近开始使用CentOS。我去尝试使用该killall实用程序,但发现它丢失了,command not found尝试使用它时收到一条消息。如何在系统上获得此功能,以便例如杀死名称与模式匹配的所有进程?

Answers:


24

pkill实用程序是的更好替代方案killallkillall不能移植,因为该命令的行为在各个操作系统之间都非常不同。pkill是便携式的,并且在任何地方都表现相同。它还提供了许多不同的流程匹配方式,因此更加灵活。它还具有与pgrep实用程序相同的匹配行为和参数,它使您能够查看将匹配并发出信号的进程,而无需实际发出信号。

用法:(pkill foo与相同killall foo


2
我认为,如果此答案表明了如何使用它来替代它,它会更好killall
exebook '17

并非所有的实现都pgrep支持-q静音选项。
Kusalananda

如果描述它是哪个软件包的一部分,也会更好
Xalorous


2

除了Patrick的解决方案之外,可以使用以下命令复制killall命令的功能:

pkill -15 [process name]

例如,要杀死所有正在运行的内存缓存进程,可以编写以下代码:

pkill -15 memcached

-15是SIGTERM POSIX信号的数字表示。要获取可以在一个进程中触发的所有POSIX信号的列表,请使用以下命令:

kill -l

这将返回下表:

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

有关每个信号作用的更多信息,请参见此处


请注意,默认情况下不是killall发送TERM信号KILL
Kusalananda


1
好点子。编辑。
丹尼尔·凯

您为什么只删除“希望有帮助!” 从头开始,@ Rui F Ribeiro?是否有社区规则反对有礼貌?
Daniel Kay

0

我想系统化的替代方案是systemctl halt(的缩写systemctl isolate halt.target)?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.