pkill mysql_终止进程的工具kill,killall和pkill

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

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

1. kill

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

kill的用法:

kill [信号代码] 进程ID

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

举例:

[root@localhost ~]# ps -ef|grep nginx

root  27195 26718  0 10:27 pts/1    00:00:00 grep nginx

root  28233     1  0 Jul15 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

nginx 28234 28233  0 Jul15 ?        00:00:00 nginx: worker process

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

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

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

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

[root@localhost ~]# pgrep -l nginx

28233 nginx

28234 nginx

[root@localhost ~]# kill -9 28233

kill -9, 这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。

当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。

如果系统中有僵尸进程,并且其父进程是init,而且僵尸进程占用了大量的系统资源,那么就需要在某个时候重启机器以清除进程表了。

2.killall

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

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

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

举例:

[root@localhost beinan]# pgrep -l GameServer

30529 GameServer

[root@localhost beinan]# killall GameServer

3. pkill

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

应用方法:

#pkill 正在运行的程序名

举例:

[root@localhost beinan]# pgrep -l GameServer

30529 GameServer

[root@localhost beinan]# pkill GameServer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值