我有以下脚本s2:
#!/bin/bash
trap 't' INT
function t() {
echo "trap"
}
sleep 999
然后我打电话给s1:
#!/bin/bash
./s2 &
wait
所以s1等待睡觉的s2。 现在,当我按下Ctrl + C时,它不会在s2中打印陷阱消息。那是为什么?
此外,如果在s1中使用INT信号启动后显式杀死s2,它仍然不会调用中断。
#!/bin/bash
./s2 &
pid=$!
kill -INT $pid
wait # waits for s2 instead of killing it right away
为什么?
答案 0 :(得分:0)
这里有两个问题。我不确定第二个问题的答案,但我可以告诉你第一个例子中发生了什么。
您可以通过检查正在运行的进程来确认。
你的第二个例子对我来说有点奇怪。如果我搞清楚,我会更新我的答案。