kill

终止进程


语法格式

/usr/bin/kill [-s signal | -p] [--] pids
/usr/bin/kill -l [signal]

命令简介

利用kill命令,可以向指定的进程或进程组发送指定的信号。其中,pids是一个或多个进程ID(详见下面的说明),表示向相应的进程发送信号。如果未指定信号,发送的默认信号是SIGTERM(信号代码为15)。SIGTERM信号将终止事先未对此信号做过捕捉处理的进程。如果SIGTERM信号无法终止一个进程,而进程又确实需要终止,则可以使用SIGKILL信号(信号代码9),因为进程无法捕捉SIGKILL信号,因而也就无法屏蔽这个信号。

在第二种语法格式中,选用的参数signal是一个信号名或信号代码,可用于信号名与信号代码的相互查证。如果未指定信号,则显示kill命令支持的信号列表。

许多Shell(如默认的bash)都具有内置的kill命令,也具有类似的功能。但内置的kill命令通常不支持“-p”等选项,且pids参数只能是进程ID,不能是命令的名字。注意,在运行本kill命令时,需要提供完整的路径名/usr/bin/kill,否则调用的是Shell内置的kill命令。

在指定进程ID参数pids时,可以采用下列5种方式之一:

n  n是一个大于0的正整数,表示进程ID等于n的进程(若想获取进程ID,可以使用ps等命令)。

All  表示当前进程组中的所有进程。

-1  表示进程ID大于1的所有进程。

-n  n是一个大于1的正整数,表示进程组n中的所有进程。当指定“-n”形式的参数时,意味着这是一个进程组,如果命令行中需要指定信号,指定的信号必须位于“-n”之前,或必须在“-n”之前插入一个“--”选项,否则将会把“-n”作为信号发送。

cmd  表示使用指定命令名调用的所有进程。

命令选项

-s signal  指定发送的信号。信号可以是一个信号名(缩写或规范的信号名均可,如KILL或SIGKILL),也可以是数字代码。

-l  显示kill命令支持的信号列表。参见“Linux系统支持的部分信号”一节,也可查阅/usr/include/linux/signal.h文件,其中给出了严格的定义。

-p  仅仅显示指定进程(命令名)的进程ID,而不发送任何信号。

--  命令选项终止标志,此后的任何数据均可视作命令参数。

Linux系统支持的部分信号

注意,信号名可以缩写,即省略SIG前缀,如把SIGHUP缩写成HUP。在默认的处理动作一列,exit表示终止进程,core表示生成内存映像文件,然后终止进程,ignore表示忽略信号,stop表示暂停运行进程,continue表示继续运行暂停的进程。

应用实例

1. 显示kill命令支持的信号列表。

$ kill -l

2. 终止进程ID 2668对应的进程。

$ kill 2668

3. 强行终止ID 2678对应的进程。

# kill –s 9 2678

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z