1
/tmp/trap.sh幫助需要SIGQUIT Bash中
#! /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
#! /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)。 「回聲信號在小孩」沒有迴應。我假設,那麼,那個孩子沒有抓住SIGQUIT。
是不是有一個孩子不接受QUIT的理由?它確實捕獲INT
它是如何傳遞到「根」的過程,而不是到前臺進程,即實際死亡,如果你的人_haven't_設置信號處理程序?爲什麼他看到SIGINT有不同的行爲?請提供文件。 – Random832 2011-04-28 00:55:54
感謝您挑戰我的草率思維。 – 2011-04-28 01:11:16
我已經完成了一些研究,看起來有些事情需要處理組和信號傳遞給組中的每個進程......可以顯示每個進程的進程組ID嗎? – Random832 2011-04-28 01:16:01