Kill

如何將 SIGINT 發送到多個程序

  • September 14, 2018

我正在嘗試將 SIGINT 信號發送到多個程序,我認為這是正確的:

kill -2 <pid1> <pid2> ... <pid3>

但我無法確認…

是的,這是正確的。手冊頁證實了這一點。跑步man kill說:

SYNOPSIS
  kill [options] <pid> [...]

...

OPTIONS
  <pid> [...]
         Send signal to every <pid> listed.

你的 shell 可能提供了它自己的內部版本kill,它會優先,但它應該與所描述的介面兼容。您可以通過執行找到更多資訊help kill

我會使用kill -INT而不是kill -2,因為名稱到數字的映射可能因 UNIX 變體而異。

這很容易使用生成一堆自身副本、對信號做出反應並等待信號的程序進行測試:

% perl -E '$SIG{INT}=sub {say "ouch"};fork();fork();say $$;sleep 999'
17344
17346
17345
17347
ouch
ouch
ouch
ouch

黑澤明擦到另一個終端那裡

% kill -2 17344 17346 17345 17347

顯然被執行了。

引用自:https://unix.stackexchange.com/questions/469116