'-9' 是杀死命令的标志吗?

Laz*_*zer 14 kill utilities command-switch

有什么作用-9

它没有出现在语法中:

$ kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
$
Run Code Online (Sandbox Code Playgroud)

And*_*ner 21

-9是信号编号(在本例中为SIGKILL),因此kill -9将 a 发送SIGKILL到相关进程。

该信号导致进程立即终止(除非它在内核函数中等待)。信号既不能被忽略,接收进程也不能在接收到信号后执行任何清理动作(即SIGKILL没有调用信号处理程序)。另请参阅维基百科关于 SIGKILL 的文章

从我的kill命令(Linux)的手册页:

   The  default  signal  for  kill is TERM. Use -l or -L to list available
   signals.  Particularly useful signals include  HUP,  INT,  KILL,  STOP,
   CONT,  and  0.   Alternate  signals  may be specified in three ways: -9
   -SIGKILL -KILL.
Run Code Online (Sandbox Code Playgroud)

编辑kill -l(的bash内置命令)列出了我的系统上的以下信号名称和数值:

 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
Run Code Online (Sandbox Code Playgroud)

  • @FaheemMitha shell 需要内置 `kill` 有两个原因。它允许`kill` 命令接受工作编号或名称(例如`kill %1`)。即使达到了某个进程计数限制,它也允许使用“kill”。 (5认同)