Linux kill killall pkill 使用方法

kill终止进程


kill 从字面来看,就是用来杀死进程的命令,但事实上,这个或多或少带有一定的误导性。从本质上讲,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

也就是说,kill 命令的执行原理是这样的,kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。
 

kill 命令的基本格式如下:
[root@localhost ~]# kill [信号] PID

kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。Linux 定义了几十种不同类型的信号,这里仅列出几个常用的信号,如表 1 所示。
 

表 1 kill命令常用信号及其含义
信号编号信号名含义
0EXIT 程序退出时收到该信息。
1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3QUIT退出。
9KILL杀死进程,即强制结束进程。
11SEGV 段错误。
15TERM正常结束进程,是 kill 命令的默认信号。

[root@www ~]# yum install psmisc* -y   --如果要使用pstree请安装该软件包

 

【例 1】 标准 kill 命令

[root@www ~]# pstree -p | grep httpd 
           |-httpd(64728)-+-httpd(64729)
           |              |-httpd(64730)
           |              |-httpd(64731)
           |              |-httpd(64732)
           |              `-httpd(64733)
#杀死PID是64728的httpd进程,默认信号是15,正常停止,如果默认信号15不能杀死进程,则可以尝试-9信号,强制杀死进程
[root@www ~]# kill 64728
[root@www ~]# pstree -p | grep httpd 
[root@www ~]#   --可以看到正常结束了进程

【例 2】使用“-1”信号,让进程重启。

[root@www ~]#  pstree -p | grep httpd 
           |-httpd(64924)-+-httpd(64925)
           |              |-httpd(64926)
           |              |-httpd(64927)
           |              |-httpd(64928)
           |              `-httpd(64929)
[root@www ~]# kill -1 64924  --使用“(数字1)”信号,让httpd的主进程重新启动
[root@www ~]#  pstree -p | grep httpd 
           |-httpd(64924)-+-httpd(65153)
           |              |-httpd(65154)
           |              |-httpd(65155)
           |              |-httpd(65156)
           |              `-httpd(65157)
子httpd进程的PID都更换了,说明httpd进程已经重启了一次

 

killall 终止特定的一类进程


killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用。 

killall 命令的基本格式如下:

[root@localhost ~]# killall [选项] [信号] 进程名

注意,此命令的信号类型同 kill 命令一样,因此这里不再赘述,此命令常用的选项有如下 2 个:

  • -i:交互式,询问是否要杀死某个进程;
  • -I:忽略进程名的大小写;

【例 】杀死 httpd 进程。 

[root@www ~]# pstree | grep httpd
        |-httpd---5*[httpd]
[root@www ~]# pstree -p  | grep httpd
           |-httpd(64924)-+-httpd(65153)
           |              |-httpd(65154)
           |              |-httpd(65155)
           |              |-httpd(65156)
           |              `-httpd(65157)
[root@www ~]# killall httpd
[root@www ~]# pstree -p  | grep httpd
[root@www ~]# 


[root@www ~]# killall -i httpd --使用i选项交互式
Kill httpd(67337) ? (y/N) y
Kill httpd(67338) ? (y/N) y
httpd(67338): No such process
[root@www ~]# pstree -p  | grep httpd

 

 pkill命令:终止进程


当作于管理进程时,pkill 命令和 killall 命令的用法相同,都是通过进程名杀死一类进程,该命令的基本格式如下:

[root@localhost ~]# pkill [信号] 进程名

表 1 罗列了此命令常用的信号及其含义。

表 1 pkill 命令常用信号及其含义
信号编号信号名含义
0EXIT 程序退出时收到该信息。
1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3QUIT退出。
9KILL杀死进程,即强制结束进程。
11SEGV 段错误。
15TERM正常结束进程,是 kill 命令的默认信号。
[root@www ~]# pstree -p  | grep httpd
           |-httpd(67657)-+-httpd(67658)
           |              |-httpd(67659)
           |              |-httpd(67660)
           |              |-httpd(67661)
           |              `-httpd(67662)
[root@www ~]# pkill  httpd   --按照名称杀死一类进程
[root@www ~]# pstree -p  | grep httpd
[root@www ~]# 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值