我需要檢測何時退出其中一個後臺進程。因此,我安裝了一個陷阱。 run_gui
和run_ai1
簡單exec
功能。當進程退出時SIGCHLD未交付
run_gui & gui_pid=$!
run_ai1 & ai1_pid=$!
trap 'echo foo' SIGCHLD
while true; do
echo "Started the loop"
while true; do
read -u $ai1_outfd line || echo "Nothing read"
if [[ $line ]]; then
: # Handle this
fi
done
while true; do
read -u $gui_outfd line || echo "nothing read"
if [[ $line ]]; then
: # Handle this
fi
done
done
當我關閉GUI時,沒有任何反應。 echo foo
命令僅在按下ctrl + c時執行。
爲什麼我會錯過SIGCHLD
?
這不會改變任何東西。 'read'正在等待一些輸入......是否重要? – marmistrz