Kill
如何將 SIGINT 發送到多個程序
我正在嘗試將 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
顯然被執行了。