kill 终止进程

kill 命令大多时候用于终止(删除)执行中的进程。

kill 默认发送的信息为 SIGTERM(15),可终止指定程序。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制终止程序。

程序的进程号可使用 ps 命令jobs -l 命令 查看,还可以使用 top 命令

命令格式:

kill -<signal> <pid> [...]
kill -s <signal> <pid> [...]
kill --signal <signal> <pid> [...]

常用选项:

-l, --list [signal]
    若不加 [signal] 选项,则列出全部的信号编号和名称
    加 [signal] 选项,则在信号编号和信号名称之间相互转换

-L
    列出全部的信号编号和名称

经常使用的信号:

Signal Name Single Value Effect
SIGINT 2 中断信号(同 <Ctrl+C> )
SIGKILL 9 强制终止进程
SIGTERM 15 发送终止信号(不适用卡死的进程)
SIGCONT 18 继续进程(类似 bg 命令)
SIGSTOP 19 暂停进程(同 <Ctrl+Z> )

使用实例:

# 列出所有信号编号和名称
[Linux]$ 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


# 首先查看进程号,然后终止进程
[Linux]$ ps -ef | grep gvim
UID          PID    PPID  C STIME TTY          TIME CMD
glenn       4071    1246  1 20:47 ?        00:00:35 gvim new.txt
[Linux]$ kill -9 4071

# 等同于 -9
[Linux]$ kill -KILL 4071