Vagrant shell provisioner卡住了而不是退出

4
我的Shell提供程序是一个小的Bash脚本,它通过apt-get获取一些东西,通过CPAN安装一些Perl模块,设置Apache和MySQL,输出一些文本然后退出。
但是,在打印完最后一条消息后,它似乎没有退出,而是永远挂起。
我是否忘记了做什么?我该如何开始调试?
如果我使用VirtualBox管理器关闭虚拟机,我会得到一个堆栈跟踪,其头部为:
/Applications/Vagrant/embedded/gems/gems/net-ssh-2.6.7/lib/net/ssh/ruby_compat.rb:30:in `select': closed stream (IOError)

宿主机操作系统:OS X Snow Leopard

客户机操作系统:通过precise32启用的Ubuntu

TIA


3
你可以发布你的 Vagrantfile 文件吗?另外,你正在使用哪个版本的 Vagrant? - Matt Cooper
2个回答

4
英译中:

这实际上是一条评论,但我没有足够的声誉将其发布为评论。

我建议使用两种技术来调试此问题。

1) 在 Vagrant 中启用调试,如下所示:

VAGRANT_LOG=info vagrant up

2)在你的shell脚本顶部定义set -x,将你的shell脚本的一行链接到运行时它所创建的输出。这应该允许你看到你的shell脚本中哪一行出现了问题。
更新你的问题并附上Vagrantfile也会帮助我们指导你朝正确的方向前进。

1

这个问题应该在 Vagrant 发布的 1.2.4 或更高版本中得到解决,其中包括一个修复程序,它会在 shell provisioner 退出时关闭 ssh 通道。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接