複数のプロセスにSIGINT信号を送信しようとしていますが、これが正しいようです。
kill -2 <pid1> <pid2> ... <pid3>
しかし、確認することはできません...
答え1
はい、そうです。マニュアルページでこれを確認してください。走る人はman kill
こう言いました。
SYNOPSIS
kill [options] <pid> [...]
...
OPTIONS
<pid> [...]
Send signal to every <pid> listed.
シェルは独自の内部バージョンを提供でき、kill
このバージョンは優先的に適用されますが、説明されているインターフェースと互換性がある必要があります。を実行すると、より多くの情報を確認できますhelp kill
。
名前と数字のマッピングはUNIXのバリエーションによって異なる可能性があるため、kill -INT
代わりに使用します。kill -2
答え2
これは、独自のコピーを作成し、信号に応答し、信号を待つプログラムを使用して簡単にテストできます。
% 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
明らかに彼は逃げた。
答え3
どうですか?
for i in <pid1> <pid2> <pid3>; do kill -2 $i; done
または:
for i in {17344..17347}; do kill -2 $i; done