Linux命令详解之–kill命令

摘要

上一篇文章我们讲到了 ps命令,用来列出当前正在执行的进程,今天我们来学习一下进程管理的另一个命令:kill 命令。
Linux kill命令 用于杀掉执行中的程序或工作。

上一篇文章我们讲到了 ps命令,用来列出当前正在执行的进程,今天我们来学习一下进程管理的另一个命令:kill 命令。

Linux kill命令 用于杀掉执行中的程序或工作。

kill命令

更多Linux命令详情请看:Linux命令速查手册

一、Linux kill命令 语法

kill [-s signal|-p] [--] pid...
kill -l [signal]

signal是信号的意思,pid代表进程ID。

PID可以使用ps命令 或者 top等命令获取。

参数说明:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户

二、Linux kill命令 实例

Linux kill命令 的使用举例如下所示:

1)查看 kill命令 所有信号:

[linuxdaxue.com@/home/linuxdaxue.com]$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    
[linuxdaxue.com@/home/linuxdaxue.com]$

说明:使用 -l 参数可以查看 kill命令 所支持的所有信号及其编号。

2)杀死进程号为 123456789 的进程

[linuxdaxue.com@/home/linuxdaxue.com]$kill 123456789
-bash: kill: (123456789) - No such process
[linuxdaxue.com@/home/linuxdaxue.com]$

当然,我这里并没有PID为123456789的进程,这里只是举例。

3)杀死指定用户的所有进程

[linuxdaxue.com@/home/linuxdaxue.com]$kill -u test

4)强制杀死某进程

[linuxdaxue.com@/home/linuxdaxue.com]$kill -9 123456789
[linuxdaxue.com@/home/linuxdaxue.com]$

kill信号 中,只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。

所以,要想强制杀死进程,要加 -9参数。

5)搭配 ps命令 使用

[linuxdaxue.com@/home/linuxdaxue.com]$ps -ef|grep linuxdaxue
root      9897  9882  0 21:42 pts/0    00:00:00 su - linuxdaxue.com
111      10647  9898  0 21:54 pts/0    00:00:00 grep linuxdaxue
[linuxdaxue.com@/home/linuxdaxue.com]$kill 10647
[linuxdaxue.com@/home/linuxdaxue.com]$

我们可以先使用 ps命令 筛选出我们所需要杀死的进程,然后用 kill命令 将其杀死。

6)init进程不可杀

[linuxdaxue.com@/home/linuxdaxue.com]$ps -ef|grep init
root         1     0  0 May19 ?        00:00:02 /sbin/init
111      10761  9898  0 21:56 pts/0    00:00:00 grep init
[linuxdaxue.com@/home/linuxdaxue.com]$kill 1
-bash: kill: (1) - Operation not permitted
[linuxdaxue.com@/home/linuxdaxue.com]$

其实从init进程 的进程号就可以看出来,init进程是系统的第一个进程,所有其他进程都由此进程产生。所以不可以杀死 init进程。

好了,有关 Linux kill命令的相关内容就先为大家介绍到这里,kill 命令用来杀死进程, 所以要慎重使用,毕竟杀死一个进程也是一个非常残忍的事情。。。。

更多Linux命令详情请看:Linux命令速查手册

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: