请考虑这个 bash 脚本:
#!/bin/bash
trap '' INT
echo sleep:
sleep 5
echo rsync:
rsync -a /usr/lib /var/tmp
正如预期的那样,尝试使用 ctrl-c 中断睡眠失败。但是rsync是可中断的(sleep和rsync的顺序无关紧要)?欢迎任何想法!
编辑:
发现了一个区别:rsync 本身启动了 2 个子进程(客户端/服务器,我假设它们产生了 2 个错误消息),并且这些似乎没有继承其父进程的“无知”。必须深入研究 bash 源代码并找出 trap 是如何工作的......
你有没有尝试过使用rsync
with --no-detach
正如SO问题中所建议的bash期间不捕获中断rsync子 shell/exec 语句 https://stackoverflow.com/questions/9624947/bash-not-trapping-interrupts-during-rsync-subshell-exec-statements?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)