博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
终止进程的工具 kill 、killall、pkill、xkill
阅读量:2454 次
发布时间:2019-05-10

本文共 2551 字,大约阅读时间需要 8 分钟。

一直用kill kill -9 下次要记得用killall 和 pkill。要把平时用几行命令完成的事情用一行命令完成!

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

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

3.1 kill

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

kill 的用法:

kill [信号代码]   进程ID

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

举例:

[root@localhost ~]# ps auxf |grep httpd
root 4939 0.0 0.0 5160 708 pts/3 S+ 13:10 0:00 _ grep httpd
root 4830 0.1 1.3 24232 10272 ? Ss 13:02 0:00 /usr/sbin/httpd
apache 4833 0.0 0.6 24364 4932 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4834 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4835 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4836 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4837 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4838 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4839 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4840 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd

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

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

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

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

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

[root@localhost ~]# ps aux |grep gaim
beinan 5031 9.0 2.3 104996 17484 ? S 13:23 0:01 gaim
root 5036 0.0 0.0 5160 724 pts/3 S+ 13:24 0:00 grep gaim
[root@localhost ~]# pgrep -l gaim
5031 gaim
[root@localhost ~]# kill -9 5031

3.2 killall

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

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

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

举例:

[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# killall gaim

3.3 pkill

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

应用方法:

#pkill 正在运行的程序名

举例:

[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# pkill gaim

3.4 xkill

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

xkill 调用方法:

[root@localhost ~]# xkill

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245514/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-245514/

你可能感兴趣的文章
Code.org致力于接触未来的1亿计算机科学家(SIGCSE主题演讲)
查看>>
新型互联网_新型公民义务的公民社会平台
查看>>
参加我们的读者调查,有机会赢取100美元的礼品卡
查看>>
华为2019年暑期实习_Google的编码实习暑期课程达到10年
查看>>
joomla 项目跟进_来自5 Joomla的建议! 项目负责人:第1部分
查看>>
openstack企业_OpenStack在企业中的潜力
查看>>
Peppermint将基于云的开源桌面引入非洲
查看>>
开源视频软件_使用开源软件开始学习的12个视频
查看>>
哈希表 哈希函数 时间_您需要了解的哈希函数
查看>>
mac安装homebrew_Homebrew简介:在Mac上轻松安装任何东西的简便方法
查看>>
开源程序识别图像像素点_开源浏览器扩展程序,可放大图像
查看>>
homebrew mac_借助Homebrew使从Mac到Linux的转换更加容易
查看>>
使用MetalLB在您的Raspberry Pi家庭实验室上安装Kubernetes负载均衡器
查看>>
rust vs java_为什么我从Java切换到Rust
查看>>
使用H5P插件在WordPress中创建交互式内容
查看>>
抓取网络源码python_使用Python进行网络抓取的新手指南
查看>>
开源贡献 计算_现在贡献开源的3个理由
查看>>
音频源代码_使用开放源代码从丢失的格式中恢复音频
查看>>
开源软件 商业软件_如何撰写开源软件
查看>>
webassembly_提升WebAssembly的安全性
查看>>