有时远程(通过ssh)Linux shell脚本不会退出

时间:2015-06-08 18:38:14

标签: linux bash shell azure ssh

我有一些基本的Linux shell脚本,用于在Azure中部署新的Ubuntu VM。

deploy.sh脚本在本地运行,它使用Azure CLI创建VM。接下来,它与新创建的VM建立ssh连接,并发送一个名为cloud-init.sh的脚本,该脚本会安装一些软件包。这个脚本总是运行良好,没有任何问题。

但是,当cloud-init.sh脚本结束时,有时将不会将控制权返回给deploy.sh脚本。它可能会在10分钟后立即返回,或者永远不会......

我已经尝试了各种方法来指示脚本已完成(您将在下面看到它们),但是没有一种方法可以解决问题。有什么想法吗?

这是deploy.sh脚本中的ssh命令:

ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -T -i $SSHPEM $SSHUSERNAME 'bash -s' < cloud-init.sh

这是cloud-init.sh脚本的尾部:

echo "--------------------------------------------"
echo "cloud-init script ended at" $(date +"%T")
echo "--------------------------------------------"
exit 0
&
^D

提前致谢。

0 个答案:

没有答案