Chinaunix首页 | 论坛 | 博客
  • 博客访问: 567644
  • 博文数量: 826
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 18:09
文章分类

全部博文(826)

文章存档

2011年(1)

2008年(825)

我的朋友

分类: LINUX

2008-08-22 18:17:18

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

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

1kill

kill的应用是和ps或pgrep命令结合在一起使用的;

kill的用法:

kill[信号代码]进程ID

注:信号代码可以省略;我们常用的信号代码是-9,表示强制终止;

举例:

[root@localhost~]#psauxf|grephttpd
root49390.00.05160708pts/3S 13:100:00\_grephttpd
root48300.11.32423210272?Ss13:020:00/usr/sbin/httpd
apache48330.00.6243644932?S13:020:00\_/usr/sbin/httpd
apache48340.00.6243644928?S13:020:00\_/usr/sbin/httpd
apache48350.00.6243644928?S13:020:00\_/usr/sbin/httpd
apache48360.00.6243644928?S13:020:00\_/usr/sbin/httpd
apache48370.00.6243644928?S13:020:00\_/usr/sbin/httpd
apache48380.00.6243644928?S13:020:00\_/usr/sbin/httpd
apache48390.00.6243644928?S13:020:00\_/usr/sbin/httpd
apache48400.00.6243644928?S13:020:00\_/usr/sbin/httpd

我们查看httpd服务器的进程;您也可以用pgrep-lhttpd来查看;

我们看上面例子中的第二列,就是进程PID的列,其中4830是httpd服务器的父进程,从4833-4840的进程都是它4830的子进程;如果我们杀掉父进程4830的话,其下的子进程也会跟着死掉;

[root@localhost~]#kill4840注:杀掉4840这个进程;
[root@localhost~]#ps-auxf|grephttpd注:查看一下会有什么结果?是不是httpd服务器仍在运行?
[root@localhost~]#kill4830注:杀掉httpd的父进程;
[root@localhost~]#ps-aux|grephttpd注:查看httpd的其它子进程是否存在,httpd服务器是否仍在运行?

对于僵尸进程,可以用kill-9来强制终止退出;

比如一个程序已经彻底死掉,如果kill不加信号强度是没有办法退出,最好的办法就是加信号强度-9,后面要接杀父进程;比如;

[root@localhost~]#psaux|grepgaim
beinan50319.02.310499617484?S13:230:01gaim
root50360.00.05160724pts/3S 13:240:00grepgaim

[root@localhost~]#pgrep-lgaim
5031gaim
[root@localhost~]#kill-95031


2killall

killall通过程序的名字,直接杀死所有进程,咱们简单说一下就行了。

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

killall也和ps或pgrep结合使用,比较方便;通过ps或pgrep来查看哪些程序在运行;

举例:

[root@localhostbeinan]#pgrep-lgaim
2979gaim
[root@localhostbeinan]#killallgaim


3pkill

pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。

应用方法:

#pkill正在运行的程序名

举例:

[root@localhostbeinan]#pgrep-lgaim
2979gaim
[root@localhostbeinan]#pkillgaim


4xkill

xkill是在桌面用的杀死图形界面的程序。比如当firefox出现崩溃不能退出时,点鼠标就能杀死firefox。当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就OK了。如果您想终止xkill,就按右键取消;

xkill调用方法:

[root@localhost~]#xkill

阅读(336) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~