详解linux杀死进程方法:kill、pkill、killall之间的区别及用法!
kill 命令
1、概念
Linux中的kill命令用来终止指定的进程的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。
2、最常用的信号
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。
3、命令格式
kill [参数] [进程id]
4、命令参数
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
killall 命令
1、概念
Linux系统中的killall命令用于杀死指定名字的进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。
2、命令格式
killall [参数] [进程名]
3、命令参数
-Z 只杀死拥有scontext 的进程
-e 要求匹配进程名称
-I 忽略小写
-g 杀死进程组而不是进程
-i 交互模式,杀死进程前先询问用户
-l 列出所有的已知信号名称
-q 不输出警告信息
-s 发送指定的信号
-v 报告信号是否成功发送
-w 等待进程死亡
–help 显示帮助信息
–version 显示版本显示
pkill 命令
1、概念
Linux pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。
kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。
2、语法
pkill [选项] [进程名]
3、参数说明:
-o 仅向找到的最小(起始)进程号发送信号 -n 仅向找到的最大(结束)进程号发送信号
-P 指定父进程号发送信号
-g 指定进程组
-t 指定开启进程的终端
kill、pkill、killall之间的区别
1、kill的对象是进程ID(单个进程);
2、pkill和killall的对象是进程名(多个进程);
3、pkill=pgrep+kill
附:pgrep是专门用于进程查询的grep
4、pkill≈killall
附:killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。