我想了解一些用于描述bash中的信号处理的示例代码。在示例32-7的http://tldp.org/LDP/abs/html/debugging.html中,作者的评论指出他正在捕获SIGINT,但陷阱是针对EXIT的。在后台进程中捕获SIGINT
{ trap "exit" SIGUSR1 sleep $interval; sleep $interval while true; do ... done; } & # Start a progress bar as a background process. pid=$! trap "echo !; kill -USR1 $pid; wait $pid" EXIT # To handle ^C.
为什么EXIT的陷阱发送正确的信号(SIGUSR1)与化背景过程上的SIGINT(CTL-C)?
任何帮助表示赞赏解释为什么这个工程。
不,只有当进程调用exit(2)本身(或者因为它到达脚本的结尾或者明确的“退出”指令)。 – fge 2012-01-05 08:56:56
对,脚本应该有像'陷阱'出口127'2 15'来处理这个问题。 – tripleee 2012-01-05 12:06:04
啊。得到它了。经过进一步测试后,我看到在键盘中断时,执行了INT陷阱,然后发生了EXIT陷阱。 – user1131035 2012-01-09 19:24:17