请考虑此的bash脚本:bash的陷阱不会忽视信号
#!/bin/bash
trap '' INT
echo sleep:
sleep 5
echo rsync:
rsync -a /usr/lib /var/tmp
试图中断与CTRL-C睡眠失败,符合市场预期。但rsync是可中断的(睡眠顺序& rsync并不重要)?任何想法都欢迎!
编辑: 找到了一个区别:rsync本身启动2个子程序(客户端/服务器,它产生2个错误信息,我假设),而且这些似乎不会继承它的父母的'无知'。必须深入bash的来源,并找出如何陷阱正在工作...
'rsync'正在设置自己的信号处理程序,覆盖你的? – tripleee
这里是一个非常类似的问题的链接。看那里可能会有帮助。 http://stackoverflow.com/questions/9624947/bash-not-trapping-interrupts-during-rsync-subshell-exec-statements – davak
感谢您的链接,但我已经读过那个。但解决这个问题并没有帮助我 - 或者我没有以正确的方式让他们停下来:/ @tripleee:那么陷阱是没用的?为什么ctrl-c会通过shell? – user1854128