帮助中心 >  技术知识库 >  数据库 >  相关技术支持 >  杀死进程的三个命令kill ,pkill ,killall

杀死进程的三个命令kill ,pkill ,killall

2019-03-03 07:19:10 7586

1.kill命令

kill 从字面来看,就是用来杀死进程的命令。但是,根据不同的信号,kill 命令可以完成不同的操作。

kill 命令格式如下:

[root@localhost ~]# kill [信号] PID

kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。我们举几个例子来说明一下 kill 命令。

[root@localhost ~]# pstree -p 丨 grep httpd | grep -v "grep"

#查看 httpd 的进程树及 PID。grep 命令査看 httpd 也会生成包含"httpd"关键字的进程,所以使用“-v”反向选择包含“grep”关键字的进程,这里使用 pstree 命令来查询进程,当然也可以使用 ps 和 top 命令

[root@localhost ~]#kill 2468

2.pkill

killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程。命令格式如下:

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

选项:

-i:交互式,询问是否要杀死某个进程;

-l:忽略进程名的大小写;

举几个例子:

[root@localhost ~]# killall httpd

#杀死所有进程名是httpd的进程

[root@localhost ~]# killall sshd

#杀死所有进程名是sshd的进程

3.pkill

pkill 命令和 killall 命令非常类似,也是按照进程名来杀死进程的。命令格式如下:

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

选项:

-t 终端号:按照终端号踢出用户;

不过 pkill 命令可以按照终端号来踢出用户。不知道大家发现没有,刚刚通过 killall 命令杀死 sshd 进程的方式来踢出用户,非常容易误杀死进程,要么会把 sshd 服务杀死,要么会把自己的登录终端杀死。

所以,不管是使用 kill 命令按照 PID 杀死登录进程,还是使用 killall 命令按照进程名杀死登录进程,都是非常容易误杀死进程的。 具体命令如下:

[root@localhost ~]# w

#使用w命令査询本机已经登录的用户

[root@localhost ~]# pkill -9 -t pts/1

#强制杀死从pts/1虚拟终端登陆的进程


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: