发送信号到进程。
目录
内建命令
概要
1 | kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... |
主要用途
- 发送信号到作业或进程(可以为多个)。
- 列出信号。
选项
1 | -s sig 信号名称。 |
参数
pid:进程ID
jobspec:作业标识符
返回值
返回状态为成功除非给出了非法选项、执行出现错误。
例子
1 | [user2@pc] kill -l 9 |
1 | 以下发送KILL信号的形式等价。当然还有更多的等价形式,在此不一一列举了。 |
注意
bash
的作业控制命令包括bg fg kill wait disown suspend
。- 该命令是bash内建命令,相关的帮助信息请查看
help
命令。
外部命令
概要
1 | kill [-signal|-s signal|-p] [-q value] [-a] [--] pid|name... |
主要用途
发送信号到进程(可以为多个)。
列出信号。
选项
1 | -s, --signal signal 要发送的信号,可能是信号名称或信号对应的数字。 |
参数
接收信号的进程列表可以是PID以及name的混合组成。
PID:每一个PID可以是以下四种情况之一:
状态 | 说明 |
---|---|
n | 当n大于0时,PID为n的进程接收信号。 |
0 | 当前进程组中的所有进程均接收信号。 |
-1 | PID大于1的所有进程均接收信号。 |
-n | 当n大于1时,进程组n中的所有进程接收信号。当给出了一个参数的形式为“-n”,想要让它表示一个进程组,那么必须首先指定一个信号,或参数前必须有一个“–”选项,否则它将被视为发送的信号。 |
name:使用此名称调用的所有进程将接收信号。
例子
1 | sleep 20 & |
返回值
- 0 成功。
- 1 失败。
- 64 部分成功(当指定了多个进程时)。
注意
- 该命令是
GNU coreutils
包中的命令,相关的帮助信息请查看man -s 1 kill
或info coreutils 'kill invocation'
。 - 启动或关闭内建命令请查看
enable
命令,关于同名优先级的问题请查看builtin
命令的例子部分的相关讨论。 - 与
kill
命令类似的有xkill
,pkill
,killall
等,用于不同的目的和场景。
参考链接
评论