最新消息:20181230 VPS服务器已从Linode换到腾讯云香港,主题仍用朋友推荐的大前端D8

[整理]kill -9的含义

Linux crifan 1560浏览 0评论

折腾:

[已解决]运行gunicorn失败:[ERROR] Connection in use 127.0.0.1 8080

期间,看到一个:

kill -9

需要去搞懂对应含义。

搜:

kill 9 meaning

bash – What is the purpose of the -9 option in the kill command? – Ask Ubuntu

Name     Num   Action    Description
KILL       9   exit      cannot be blocked
The command kill sends the specified signal to the specified process or process group. If no signal is specified, the TERM signal is sent. The TERM signal will kill processes which do not catch this signal. For other processes, it may be necessary to use the KILL (9) signal, since this signal cannot be caught.

Unix signal – Wikipedia, the free encyclopedia

[总结]

kill的语法是:

<code>kill -&lt;signal&gt; &lt;pid&gt;
</code>

-》

<code>kill -&lt;信号名称&gt; &lt;进程的ID&gt;
</code>

-》此处,用数字去方便的记录对应的信号的名称

-》9对应着就是KILL信号

-》

<code>kill -9 PID
== kill -KILL PID
== kill -SIGKILL PID
</code>

-》

kill 和 kill -9 的区别就是:

  • kill 是向对应进程发送TERM信号
  • kill -9 是向对应进程发送KILL信号

-》

TERM信号和KILL信号的区别:

正常进程接收到TERM都会终止掉

但是对应一些特殊情况,比如进程无响应,进程已被冻结

则无法正常响应TERM,从而无法正常终止

KILL信号,可以终止这些,包括特殊的无响应的,已被冻结的进程

TERM:应用将要被终止,比如,可以正常的执行相关的关闭shutdown等函数

KILL:应用被立刻停止掉和杀掉,其可能会导致数据丢失或有时候会触发上报崩溃

-》

kill使用了-9参数,可以确保进程可以被有效地,真正地被杀掉。

即使对于一个冻结了的或无响应的进程,其可能无法响应默认的kill所发出的TERM信号,则都可以在收到-9发出的KILL信号而被终止掉。

[引申]

信号名称
本意
等价的快捷键或命令
详细解释
SIGHUP
hangup挂起
SIGINT
interrupt中断
快捷键:Control+C
SIGTERM
terminate终止
命令:kill或killall
SIGTSTP
terminal stop终端停止
快捷键:Control+Z
SIGSTOP
stop停止
SIGPIPE
pipe closed管道被关闭
告诉程序其管道被关闭了,通常也意味着结束了程序。比如
cat /etc/passwd | head -n1
(当第一行输出)执行完毕后,会发送SIGPIPE给cat进程,就停止输出了(不会继续cat该文件后续内容了)
-》
可以理解为通过PIPE管道接受了被停止的命令
SIGQUIT
quit退出
快捷键:Control + \

-》

关于更多的kill中所涉及的信号,可以通过kill -l看到:

 kill -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

但是没有数字。

网上别人的:

Why number 9 in kill -9 command in unix? – Stack Overflow

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

转载请注明:在路上 » [整理]kill -9的含义

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
63 queries in 0.063 seconds, using 9.46MB memory