Answers:
-9
是信号编号(在这种情况下为SIGKILL
),因此kill -9
将a发送SIGKILL
到相关进程。
该信号导致进程立即终止(除非它正在内核函数中等待)。接收到信号后,不能忽略该信号,接收过程也不能执行任何清除操作(即,SIGKILL
不调用for的信号处理程序)。另请参阅SIGKILL上的Wikipedia文章。
从我的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.
编辑:
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
kill -l
也会列出数值。您的操作系统是什么?
man kill
列出了一些信号的数值。
kill
在中procps
,这是1:3.2.8-9
Debian压缩版。是的,Ubuntu基本上是Debian。所以我想知道为什么kill -l
不返回相同的东西。
zsh
的内置kill
命令,而不是/bin/kill
(实际上如您所说的列出了数值)
kill
内置的原因有两个。它允许kill
命令接受作业编号或名称(例如kill %1
)。并且kill
即使已达到某些过程计数限制,也可以使用它。
man signal
将向您显示信号编号和信号名称之间的映射。
-9
是的实例-sigspec
,它等同于-s 9
或-n 9
或-s KILL
或-KILL
。