我的shell配置程序是一个小的bash脚本,可以通过cpan安装一些Perl模块,设置Apache和MySQL,回显一些文本,并且存在。
除了在打印完最终消息后,它似乎不会退出,而是永远挂起。
我忘了做某事吗?我该如何开始调试呢?
如果我使用VirtualBox管理器关闭VM,我会得到一个头部读取的堆栈跟踪
/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 客户操作系统:Ubunut via precise32
TIA
答案 0 :(得分:4)
这是一个评论,但我没有足够的声誉将其作为评论发布。
我建议使用两种方法来调试此问题。
1)在Vagrant中启用调试,如下所示:
VAGRANT_LOG=info vagrant up
2)在shell脚本的顶部定义set -x
,将shell脚本的一行链接到运行时创建的输出。这应该允许您查看shell脚本的哪一行挂起。
使用Vagrantfile更新您的问题也有助于我们指导您正确的方向。
答案 1 :(得分:1)
此问题应在Vagrant版本1.2.4或更高版本中解决,其中包括a fix,它会在shell配置程序退出时关闭ssh通道。