我有一个用于运行服务器的 bash 脚本,该脚本通常由用户使用Ctrl-C. 在退出时,它运行一个清理函数,我不想被第二个中断Ctrl-C。
#!/bin/bash
...
function cleanup {
trap '' INT
echo -n " Cleaning up..."
scp $SRV:~/$DIR/server.log . && ssh -t $SRV "rm -rf ~/$DIR"
echo " Finished."
exit 0
}
trap cleanup EXIT
...
Run Code Online (Sandbox Code Playgroud)
目前,Ctrl-C在scp完成前一秒会导致脚本无限期挂起。我知道这与SIGINT发送到 bash 脚本和scp进程有关,但我不知道为什么这会导致脚本挂起,而不仅仅是导致清理失败。
所以我的问题是:
scp和ssh子进程?