【Linux】进程管理之kill、killall、pkill
创始人
2025-05-29 01:35:05
0

在这里插入图片描述

一、kill 命令

  Linux 中的 kill 命令用来终止指定的进程的运行,是 Linux 下进程管理的常用命令。通常,终止一个前台进程可以使用 Ctrl+C 键,但是,对于一个后台进程就须用 kill 命令来终止,那就需要先使用 ps、pidof、pstree、top等工具获取进程 PID,然后使用 kill 命令来杀掉该进程。kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。其基本语法命令如下:

kill [参数] [进程id]
参数说明
-l–list如果-l 后面不加任何参数,那就就代表列出所有的信号名字
-a当处理当前进程时,不限制命令名和进程号的对应关系
-p指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s指定发送信号
-u指定用户
-V–version版本信息
-h–help帮助文档

  kill 命令是通过向进程发送指定的信号来结束相应进程的,根据不同的信号,kill 命令可以完成不同的操作。在默认情况下,采用编号为15的TERM信号,TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的 kill 信号,强行“杀掉”该进程。

参数说明
HUP1终端断线
INT2中断,同 Ctrl + C
QUIT3退出
TERM15终止
KILL9强制终止
CONT18继续
STOP19暂停

  Linux 中每个进程的进程的PID是唯一的,可以用于区分不同的进程。kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。我们举几个例子来说明一下 kill 命令:

# 查询java服务的PID
$ pidof java
118754# 将PID所代表的进程终止掉
$ kill 118754# 有时系统会提示进程无法被终止,此时可以加参数-9,表示最高级别地强制杀死进程
$ kill -9 118754

注意:

  • kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。
  • 当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。
  • 应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启  动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。

二、killall 命令

  Linux 系统中的 killall 命令用于杀死指定名字的进程,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死对应的进程。我们可以使用 kill 命令杀死指定进程 PID 的进程,如果要找到需要杀死的进程,还需要在之前使用 ps 等命令,再配合 grep 来查找进程,而 killall 把这两个过程合二为一,是一个很好用的命令。其基本语法命令如下:

killall [参数] [进程名]
参数说明
-Z–context只杀死拥有scontext 的进程
-e–exact进程需要和名字完全相符
-I–ignore-case忽略进程名的大小写
-g–process-group杀死进程组而不是进程
-i–interactive交互模式,询问是否要杀死某个进程
-l–list列出所有的已知信号名称
-q–quite进程没有结束时,不输出任何信息
-v–verbose报告信号是否成功发送
-u–user显示详细执行过程
-w–wait等待所有的进程都结束
–help显示帮助信息
-V–version显示版本显示
# 杀死所有同名进程
killall nginx
# 强制杀死所有bash进程
killall -9 bash
# 向进程发送指定信号
killall -TERM ngixn
# 向进程发送指定KILL信号
killall -KILL nginx

默认没有需要yum安装

yum -y install psmisc

三、pkill 命令

  pkill 命令和 killall 命令的用法相同,都是通过进程名杀死进程。与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。

pkill [选项]  进程名称
参数说明
-o仅向找到的最小(起始)进程号发送信
-n仅向找到的最大(结束)进程号发送信号
-P指定父进程号发送信号
-g指定进程组
-t指定开启进程的终端
# 结束 mysql 进程
pkill mysql# 结束mark,danny用户的所有进程
pkill -u mark,danny# 使用w命令查询本机已经登录的用户
w# 强制杀死 mysql 进程
pkill -9 -t mysql

四、拓展命令

如果能看懂下面一系列命令,那么killall 、kill 、pkill三个命令之间的区别你也就了然于胸了。

  1. pgrep命令:专门显示进程的进程号,相当于:

    ps -aux | grep 进程名 | grep -v grep| awk '{print $2}' 
    
  2. pidof命令:pid of xx进程,显示进程的进程号,同上pgrep。

  3. 组合命令的使用:

    pgrep mysql | xargs kill -s 9ps -ef | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9kill -s 9 `pgrep mysql`
    

相关内容

热门资讯

南京中央商场收警示函,涉诉讼未... 11月21日,根据江苏证监局发布的决定,南京中央商场(集团)股份有限公司及其相关责任人祝珺、李尤、金...
张明:英国养老金体系——改革历... 张明系中国社会科学院金融研究所副所长、国家金融与发展实验室副主任、中国首席经济学家论坛理事 注:本文...
化解陈年旧债 卸下纠纷“包袱” 图为广西壮族自治区贺州市平桂区人民法院沙田人民法庭庭长蒙明双对易大姐进行判后答疑。 罗媚娟 摄 “蒙...
市人大代表建议优化上海外牌限行... 在长三角一体化的大背景下,城市交通管理政策对于区域经济发展和人员流动具有重要影响。上海市人大代表朱柯...
2025年11月化工专利律师,... 在当今竞争激烈的商业环境中,知识产权的保护对于化工、生物等行业以及拟上市企业来说至关重要。选择一位靠...
法律顾问能处理海事海商法律事务... 法律顾问能否处理海事海商法律事务 在当今复杂的商业环境中,海事海商活动频繁,其中涉及的法律问题错综...
“一口价”,为啥会引发纠纷? 新华视点 | 网约车“一口价”:“司乘两难”如何解? 近期,多地针对网约车低价竞争乱象,发布暂停“一...
原创 中... 联合国的最新表态令人精神一振,这种明确态度其实本就顺理成章。台湾自古属于中国,这是铁一般的事实,中国...
花800元就能买自己的死亡证明... 花800元就能买到 本人的精神诊断报告和死亡证明? 近日,“假证定制”业务 在多个电商和社交平台 死...
智能平台支撑政策落地 实达集团... 11月17日,福建省发展和改革委员会网站发布《福建省数据管理局关于印发〈福建省数据流通交易管理办法(...