待機プロセスのシグナルによってwait $ pidコマンドが中断されるのはなぜですか?

待機プロセスのシグナルによってwait $ pidコマンドが中断されるのはなぜですか?

私の観察内容を適切に説明する文書が見つかりません。次のコードを実行した後、kill -SIGINT $my_pid別のシェルで実行します。最初の2回は正確に見ます#### received trap 2。ただし、waitコマンドはすべての信号で中断​​されます。なぜ?

#!/bin/bash

for s in {0..64}
do
    trap "echo '#### received trap $s'" $s
done

./code &
pid=$!
my_pid=$$

wait $pid
wait $pid

ベストアンサー1

3.7.6 信号

Bashが組み込み関数を介して非同期コマンドを待機しているときにトラップセットを持つ信号を受信するwaitと、スタンバイ組み込み関数は128より大きい終了状態に即座に返され、次にトラップがすぐに実行されます。

おすすめ記事