kill 和 kill -9到底有何区别?为何要加-9?

 

kill 和 kill -9


很多时候,会有人建议你,如果kill杀不掉一个进程,就用kill -9. 为什么?
kill是Linux下常见的命令。其man手册的功能定义如下:

kill – send a signal to a process
  • 1

明朗了,其实kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。当然你也可以使用kill发送其他信号给进程。
经常使用的killall呢?

killall – kill processes by name
  • 1

即,通过指定进程名的方式杀死进程。

KILL(1) Linux User’s Manual KILL(1)
NAME
    kill - send a signal to a process
SYNOPSIS
    kill [ -signal | -s signal ] pid …
    kill [ -L | -V, --version ]
    kill -l [ signal ]
DESCRIPTION

  • The default signal for kill is TERM. Use -l or -L to list avail‐
    able signals. Particularly useful signals include HUP, INT,
    KILL, STOP, CONT, and 0. Alternate signals may be specified in
    three ways: -9 -SIGKILL -KILL. Negative PID values may be used
    to choose whole process groups; see the PGID column in ps command
    output. A PID of -1 is special; it indicates all processes except
    the kill process itself and init.

SIGNALS

  • The signals listed below may be available for use with kill.
    When known constant, numbers and default behavior are shown.

  • Name Num Action Description
    0 0 n/a exit code indicates if a signal may be sent
    ALRM 14 exit
    HUP 1 exit
    INT 2 exit
    KILL 9 exit cannot be blocked
    PIPE 13 exit
    POLL exit
    PROF exit
    TERM 15 exit
    USR1 exit
    USR2 exit
    VTALRM exit
    STKFLT exit might not be implemented
    PWR ignore might exit on some systems
    WINCH ignore
    CHLD ignore
    URG ignore
    TSTP stop might interact with the shell
    TTIN stop might interact with the shell
    TTOU stop might interact with the shell
    STOP stop cannot be blocked
    CONT restart continue if stopped, otherwise ignore
    ABRT 6 core
    FPE 8 core
    ILL 4 core
    QUIT 3 core
    SEGV 11 core
    TRAP 5 core
    SYS core might not be implemented
    EMT core might not be implemented
    BUS core core dump might fail
    XCPU core core dump might fail
    XFSZ core core dump might fail

NOTES

  • Your shell (command line interpreter) may have a built-in kill
    command. You may need to run the command described here as
    /bin/kill to solve the conflict.

EXAMPLES

  • kill -9 -1
    • Kill all processes you can kill.
  • kill -l 11
    • Translate number 11 into a signal name.
  • kill -L
    • List the available signal choices in a nice table.
  • kill 123 543 2341 3453
    • Send the default signal, SIGTERM, to all those processes.

SEE ALSO

  • pkill(1), skill(1), kill(2), renice(1), nice(1), signal(7), kil‐
    lall(1).

STANDARDS

  • This command meets appropriate standards. The -L flag is Linux-
    specific.

AUTHOR

  • Albert Cahalan [email protected] wrote kill in 1999 to
    replace a bsdutils one that was not standards compliant. The
    util-linux one might also work correctly.
    Please send bug reports to [email protected]
    Linux November 21, 1999 KILL(1)

kill -l

  1. SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
  2. SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
  3. SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
  4. SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
  5. SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
  6. SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
  7. SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
  8. SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
  9. SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
  10. SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
  11. SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
  12. SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
  13. SIGRTMAX-1 64) SIGRTMAX

本文来自 帝都码农 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/rheostat/article/details/8089256?utm_source=copy

猜你喜欢

转载自blog.csdn.net/weixin_42139375/article/details/83107127
今日推荐