红联Linux门户
Linux帮助

终止进程的工具kill 、killall、pkill

发布时间:2012-04-09 15:40:48来源:红联作者:empast
终止一个进程,一般是通过kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

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

kill
kill一般是和ps 或pgrep 命令结合在一起使用的
kill [信号代码] 进程ID
注:信号代码可以省略(信号代码是15,正常结束);我们常用的信号代码还有9,表示强制终止
例:
[root@localhost ~]# pgrep -l gaim
5031 gaim
[root@localhost ~]# kill -9 5031

killall
killall 通过程序的名字,直接杀死所有进程
用法:killall 正在运行的程序名
killall 也和ps或pgrep 结合使用,比较方便
通过ps或pgrep 来查看哪些程序在运行
举例:
[root@localhost test]# pgrep -l gaim
2979 gaim
[root@localhost test]# killall gaim

pkill
pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉
应用方法:pkill 正在运行的程序名
举例:
[root@localhost test]# pgrep -l gaim
2979 gaim
[root@localhost test]# pkill gaim
文章评论

共有 2 条评论

  1. compat 于 2012-04-10 08:56:19发表:

    不错的介绍

  2. acrofox 于 2012-04-10 07:03:24发表:

    补充一个:skill