kill 从字面来看,就是用来杀死进程的命令。但是,根据不同的信号,kill 命令可以完成不同的操作。
kill 命令格式如下:
[root@localhost ~]# kill [信号] PIDkill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。我们举几个例子来说明一下 kill 命令。
【例 1】 标准 kill 命令
[root@localhost ~】# service httpd start
#启动RPM包默认安装的apache服务
[root@localhost ~]# pstree -p 丨 grep httpd | grep -v "grep"
#查看 httpd 的进程树及 PID。grep 命令査看 httpd 也会生成包含"httpd"关键字的进程,所以使用“-v”反向选择包含“grep”关键字的进程,这里使用 pstree 命令来查询进程,当然也可以使用 ps 和 top 命令
|-httpd(2246)-+-httpd(2247)
| |-httpd(2248)
| |-httpd(2249)
| |-httpd(2250)
| |-httpd(2251)
[root@localhost ~]# kill 2248
#杀死PID是2248的httpd进程,默认信号是15,正常停止
#如果默认信号15不能杀死进程,则可以尝试-9信号,强制杀死进程
[root@localhost ~]# pstree -p | grep httpd | grep -v "grep"
|-httpd(2246>-+-httpd(2247)
| |-httpd(2249)
| |-httpd(2250)
| |-httpd(2251)
#PID是2248的httpd进程消失了
【例 2】使用“-1”信号,让进程重启
[root@localhost ~]# kill -1 2246
使用“-1 (数字1)”信号,让httpd的主进程重新启动
[root@localhost ~]# pstree -p | grep httpd | grep -v "grep"
|-httpd(2246)-+-httpd(2270)
| |-httpd(2271)
| |-httpd(2272)
| |-httpd(2273)
| |-httpd(2274)
#子httpd进程的PID都更换了,说明httpd进程已经重启了一次
【例 3】 使用“-19”信号,让进程暂停
[root@localhost ~]# vi test.sh #使用vi命令编辑一个文件,不要退出
[root@localhost ~]# ps aux | grep "vi" | grep -v "grep"
root 2313 0.0 0.2 7116 1544 pts/1 S+ 19:2.0 0:00 vi test.sh
#换一个不同的终端,查看一下这个进程的状态。进程状态是S(休眠)和+(位于后台),因为是在另一个终端运行的命令
[root@localhost ~]# kill -19 2313
#使用-19信号,让PID为2313的进程暂停。相当于在vi界面按Ctrl+Z快捷键
[root@localhost ~]# ps aux | grep "vi" | grep -v "grep"
root 2313 0.0 0.2 7116 1580 pts/1 T 19:20 0:00 vi test.sh
#注意2313进程的状态,变成了 T(暂停)状态。这时切换回vi的终端,发现vi命令已经暂停,又回到了命令提示符,不过2313进程就会卡在后台。如果想要恢复,可以使用"kill -9 2313”命令强制中止进程,也可以利用后续章节将要学习的工作管理来进行恢复
TAG:
除非注明,文章均由 Linux系统学习 整理发布,欢迎转载。如有版权争议,请联系删除。
如果觉得《linux系统kill进程 Linux kill命令详解:终止进程》对你有帮助,请点赞、收藏,并留下你的观点哦!