linux之进程的终止:kill和killall

47 篇文章 5 订阅
6 篇文章 0 订阅

当有部分进程由于某种原因已经死掉或工作异常,或者要停止一些非关键或非数据业务的进程,那么就需要使用kill或者killall命令。这些命令实现的原理是向内核发送一个系统操作信号以及某个进程的标识号,使得内核对指定标识号的进程进行相应的操作。

1.kill命令
kill命令的语法:

kill [信号代码] 进程ID

查找进程的进程号一般使用ps命令,例如:

ps -ef|grep mysqld

用该命令查的时候,会发现由若干个mysql进程,但其实主进程只有一个那就是pid为2222,其他都是主进程的子进程。
在这里插入图片描述

但linux提供了一个更便捷的命令:pidof,只返回主进程pid

pidof mysqld

kill命令后面的信号代码有64种,使用kill -l可以查看。但使用的最多的就三种:1,9和15,分别代表重启,强行杀掉和正常结束。
在这里插入图片描述

  • 在使用kill -1时,重启进程的时候实际上是不会改变主进程的pid,而子进程会改变。这就是说发生了原地重启,或者叫软重启。
  • kill -9:在有一些进程因为运行中出现问题而无法通过正常方式停止的,便可使用该信号代码。其意义是立即杀死进程,而且该信号无法被阻塞或者忽略。但是缺点是进程直接被系统终止,而没有清理之前申请的内存,会造成一定程度上的‘内存泄漏’。
  • kill -15:linux默认的程序中断信号,它也会使进程正常退出。

2.killall命令
kill命令操作的对象是进程的pid,因此想要杀掉一个进程,首先要知道pid,但若pid查找错误,错杀了更重要的进程,那将会非常麻烦。而killall,使用的是进程名字而不是PID,该命令更简单且安全,使用的语法如下:

killall mysqld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远不要矫情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值