爱学习的好孩子

Linux的kill命令用法

时间: 2024-06-14

概要

kill [-s 信号说明符 | -n 信号编号 | -信号说明符] pid | 任务说明符 ... 或 kill -l [信号说明符]
    向一个任务发送一个信号。

选项

-s sig    信号名称。
-n sig    信号名称对应的数字。
-l        列出信号名称。如果在该选项后提供了数字那么假设它是信号名称对应的数字。
-L        等价于-l选项。

参数

  • pid: 进程ID
  • jobspec: 作业标识符

返回值

返回状态为成功除非给出了非法选项、执行出现错误。

例子

# 列出所有信号名称:
[user2@pc] kill -l

[user2@pc] kill -l 9
KILL

下面是常用的信号。

信号 数字 说明
HUP 1 终端挂断
INT 2 中断,同 Ctrl + C
QUIT 3 退出,同 Ctrl + \
KILL 9 强制终止
TERM 15 终止
CONT 18 继续(与STOP相反,fg/bg命令)
STOP 19 暂停,同Ctrl + Z

Tip

只有第9种信号SIGKILL才可以无条件终止进程,其他信号进程都有权利忽略。

# 以下发送KILL信号的形式等价
[user2@pc] kill -s SIGKILL PID
[user2@pc] kill -s KILL PID
[user2@pc] kill -n 9 PID
[user2@pc] kill -9 PID

[user2@pc] sleep 90 &
[1] 178420

# 终止作业标识符为1的作业
[user2@pc] kill -9 %1

[user2@pc] jobs -l
[1]+ 178420 KILLED                  ssh 192.168.1.4

[user2@pc] sleep 90 &
[1] 181357

# 发送停止信号
[user2@pc] kill -s STOP 181357

[user2@pc] jobs -l
[1]+ 181537 Stopped (signal)        sleep 90

# 发送继续信号。
[user2@pc] kill -s CONT 181357

[user2@pc] jobs -l
[1]+ 181537 Running                 sleep 90 &

注意

  • bash的作业控制命令包括bg fg kill wait disown suspend
  • 该命令是bash内建命令,相关的帮助信息请查看help命令。

评论