kill 、killall、pkill、xkill pgrep ps 命令解释 2015年10月24日

来源:互联网 发布:中文logo设计软件 编辑:程序博客网 时间:2024/06/08 04:03

一、kill

 

 

终止一个进程或终止一个正在运行的程序,一般是通过kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

 

另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。比如mysql服务器最好是按其正常的程序关闭,而不是用pkillmysqld 或killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用kill 来杀掉。

 

1kill

根据进程号杀死单个进程。对于僵尸进程,可以用kill -9 来强制终止退出

用法:kill [信号代码]  进程ID

 

[root@localhost ~]#kill 4830

[root@localhost ~]#kill -9 5031

 

2killall

根据进程名称杀死程序

用法:killall 正在运行的程序名

 

[root@localhostbeinan]# pgrep -l gaim

2979 gaim

[root@localhostbeinan]# killall gaim

 

 

3pkill

pkill和killall 应用方法差不多,也是直接杀死运行中的程序

用法:pkill 正在运行的程序名

 

[root@localhostbeinan]# pgrep -l gaim

2979 gaim

[root@localhostbeinan]# pkill gaim

 

4xkill

xkill是在桌面用的杀死图形界面的程序。

 

 

二、pgrep

 

经常要查看进程的信息,包括进程的是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。pgrep通过匹配其程序名,找到匹配的进程。常用选项:

-l 同时显示进程名和PID

-o当匹配多个进程时,显示进程号最小的那个

-n 当匹配多个进程时,显示进程号

 

[root@centOS1nginx]# pgrep nginx

5289

5290

 

[root@centOS1nginx]# pgrep -l nginx

5289 nginx

5290 nginx

 

[root@centOS1nginx]# pgrep -l -o nginx

5289 nginx

 

[root@centOS1nginx]# pgrep -l -n nginx

5290 nginx

 

 

特别说明

1)pgrep相当于 ps –eopid,cmd | awk ‘{print $1,$2}’ | grep KeyWord

   [root@master ~]# ps -eo pid,cmd | awk'{print $1,$2}'  | grep init

   1 init

   [root@master ~]# pgrep init

   1

 

2)如1),pgrep查找的是程序名,不包括其参数如下,参数里包括要查找的参数,而程序名中不包括,所有没查找到。

   [root@master ~]# ps axu | grep name

   root    13298  0.0  0.3  5436  1000 pts/4    S   05:52   0:00 sh name.sh

   root    13313  0.0  0.2  4876   672 pts/4    R+  05:53   0:00 grep name

   [root@master ~]# pgrep name

   [root@master ~]#

 

总结

pgrep命令用来查找进程的信息,通常会和kill命令来连用,在指定条件下kill问题进程。

0 0
原创粉丝点击