Bash Trap不会忽略信号 [英] bash trap won't ignore signal
本文介绍了Bash Trap不会忽略信号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请考虑此bash脚本:
#!/bin/bash
trap '' INT
echo sleep:
sleep 5
echo rsync:
rsync -a /usr/lib /var/tmp
如预期的那样,尝试使用ctrl-c中断睡眠失败。但rsync是可中断的(睡眠和rsync的顺序并不重要)?欢迎任何想法!
编辑: 发现了不同之处:rsync本身启动了两个子进程(我假设是客户机/服务器,它会产生两个错误消息),而这些进程似乎并没有继承其父进程的"无知"。必须深入研究bash源代码并找出陷阱是如何工作的...
推荐答案
您是否尝试过按照SO问题bash
not trapping interrupts during rsync
subshell/exec statements中的建议使用rsync
和--no-detach
?
这篇关于Bash Trap不会忽略信号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文