咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
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虚拟终端登陆的进程