Linux kill,killall和killall5

kill和killall5这两个命令是系统自带的,即使最小化安装也有的命令,killall这个命令如果是最小化安装需要 yum安装,

安装命令为:yum install psmisc -y

kill命令----

杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程的pid。

使用 kill -l 命令列出所有可用信号。

[root@localhost ~]# 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    

这里面有我们所熟悉的1和9,15。

最常用的信号是:

  • 1 (HUP):重新加载进程。比如 nginx的pid为 888,那么 kill -1 888,nginx的这个进程就重载了。如何判断是否如此?pid启动时间可以发现是重载过的哦。
  • 9 (KILL):杀死一个进程。同1的用法
  • 默认参数下,kill 发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。 
    kill -9 发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出。 
    TERM(或数字9)表示“无条件终止”; 
    因此 kill - 9 表示强制杀死该进程;与SIGTERM相比,这个信号不能被捕获或忽略,同时接收这个信号的进程在收到这个信号时不能执行任何清理
  • 15 (TERM):正常停止一个进程。同1的用法,这个信号是默认的信号,也就是说kill 后面不接参数,其实就是 kill -15

这个命令用起来比较繁琐,因为参数后面必须接pid号,而pid号你得查出来才知道。

killall命令:

该命令可以说是增强版kill,只需要指定主进程名称即可,killall 进程名称,它会帮你将所有相关的进程关闭(只要包含进程名称的进程),该命令优势十分明显,大大简化了操作,唯一美中不足的是很可能需要安装,安装命令为:

yum install psmisc -y

使用示例: killall nginx  #杀死有关NGINX的进程,父子通杀。

当然,你也可以杀死某个用户的所有进程,命令为:

killall -u 用户名 (killall -u root就比较霸道了,应该是要重启机器才可以正常,我反正是xshell直接废了)

kiallall -u 的等价命令 pkill -u  用户名

更多用法请自行查询:killall -h

killal5命令:

比较霸道的关闭所有进程,除了内核和当前shell的进程,剩下的全部杀死。

这个命令狠就狠在桌子一掀,全都别活,只留一线生机(内核还给你留着,内核关了就彻底关机了),没有重启命令更干脆,苟且命令吧,慎用!!!(实在是不想重启的时候勉强一试,可能有奇效)。

 

 

 

Logo

更多推荐