/tmp/trap.shヘルプはバッシュ
#! /bin/bash
echo parent
trap signalCaught HUP INT QUIT TERM
signalCaught() {
echo "SIGNAL DETECTED I am the parent."
}
SLEEP=10
for i in $(seq $SLEEP -1 0); do
echo "$i"
sleep 1
done
/tmp/trap2.sh 2>&1 | tee -ai /tmp/garbage.txt
echo " --- terminating \"$0\" "
/tmp/trap2.shをSIGQUITを必要
#! /bin/bash
echo child
trap 'echo signal caught in child' HUP INT QUIT TERM
read JUNK
SLEEP=10
echo sleeping for $SLEEP seconds
sleep $SLEEP
echo " --- terminating \"$0\" "
私は/tmp/trap.shを実行し、それがtrap2を呼び出すことができます.sh、SIGQUITは親プロセス(trap.sh)によってのみ捕捉されます。 「子供に捉えられたエコー信号」はエコーされません。 I がであると仮定すると、その子はSIGQUITを捕まえません。
子供がQUITをキャッチしない理由はありますか?それはキャッチします
_haven't_シグナルハンドラを設定していませんか?なぜ彼はSIGINTのさまざまな動作を見ていますか?ドキュメントを提供してください。 – Random832
私の控えめな思考に挑戦してくれてありがとう。 –
私はいくつかの研究を行っており、プロセスグループやシグナルがグループ内のすべてのプロセスに配信されているように見えます... pstreeは各プロセスのプロセスグループIDを表示できますか? – Random832