kill
# kill
命令用于删除执行中的程序或工作。
# 语法
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
1
# 参数
-s, --signal signal
要发送的信号,可能是信号名称或信号对应的数字。-l, --list [number]
打印信号名称或转换给定数字到信号名称。信号名称可参考文件(/usr/include/linux/signal.h)。-L, --table
和'-l'选项类似,但是输出信号名称以及信号对应的数字。-a, --all
不要限制“命令名到pid”的转换为具有与当前进程相同的UID的进程。-p, --pid
打印目标进程的PID而不发送信号。--verbose
打印信号以及接收信号的PID。-q, --queue value
使用sigqueue(3)而不是kill(2)。参数value是信号对应的数字。 如果接收进程已为此信号安装了处理程序将SA_SIGINFO标记为sigaction(2),则可以获取该数据通过siginfo_t结构的si_sigval字段。--help
显示帮助信息并退出。--version
显示版本信息并退出。[程序]
[程序]
可以是程序的PID
或是PGID
,也可以是工作编号
。
# 列出所有可用信号
kill -l
1
# 最常用的信号是
HUP 1
: 终端挂断INT 2
: 中断(同 Ctrl + C)QUIT 3
: 退出(同 Ctrl + \)KILL 9
: 强制终止TERM 15
: 终止CONT 18
: 继续(与STOP相反,fg/bg命令)STOP 19
: 暂停(同 Ctrl + Z)
# 实例
# 杀死进程
kill 12345
1
# 强制杀死进程
kill -KILL 123456
1
# 发送SIGHUP信号
kill -HUP pid
1
# 彻底杀死进程
kill -9 123456
1
# 显示信号
# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 杀死指定用户所有进程
# 方法一 过滤出hnlinux用户进程
kill -9 $(ps -ef | grep hnlinux)
# 方法二
kill -u hnlinux
1
2
3
4
5
2
3
4
5