“kill -1 -9”命令的作用是什么?

cod*_*nza 4 command-line gnome-terminal 16.10 17.10

我是 Ubuntu 的新手,我学会了一个命令-

kill -1 -9 - 向进程发送信号。

请告诉我它在谈论什么类型的信号以及在命令中-1 -9是什么意思?

ste*_*ver 15

我怀疑你真正学到的命令是

kill -9 -1
Run Code Online (Sandbox Code Playgroud)

根据man killkill命令的格式是

kill [options] <pid> [...]
Run Code Online (Sandbox Code Playgroud)

so-9是一个选项,-1是一个 PID 或进程标识符。如手册页所述,

                                                               A PID of -1
   is special; it indicates all processes except the kill  process  itself
   and init.
Run Code Online (Sandbox Code Playgroud)

而对于信号值的解释,您可以使用以下选项运行man 7 signal或从kill命令本身获取概要-l

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

所以,如本EXAMPLES节所述

EXAMPLES
       kill -9 -1
              Kill all processes you can kill.
Run Code Online (Sandbox Code Playgroud)

这里的“你可以”是对特权的间接引用——实际上,普通用户将无法杀死不属于他们的进程。


您的问题中给出的实际命令会尝试将信号 1 ( SIGHUP)发送到进程 -9 (这不是有效的 PID),因此只会返回错误:

$ kill -1 -9
-bash: kill: (-9) - No such process
Run Code Online (Sandbox Code Playgroud)