我在運行子/後臺進程時無法捕獲信號。子女後臺進程中的陷阱信號
這裏是我的簡單的bash腳本:
#!/bin/bash
echo "in child"
trap "got_signal" SIGINT
function got_signal {
echo "trapped"
exit 0
}
while [ true ]; do
sleep 2
done
當運行這個後來做
kill -SIGINT (pid)
一切正常,它打印 '被困',然後退出。
現在,如果我這樣從父腳本來啓動同一個腳本:
#!/bin/bash
echo "starting the child"
./child.sh &
那麼孩子不捕獲信號了......?
更改爲使用SIGTERM而不是SIGINT後,它似乎工作正常......?