4

私のシェル プロビジョナーは、いくつかのものを apt-get し、cpan を介していくつかの Perl モジュールをインストールし、Apache と MySQL をセットアップし、いくつかのテキストをエコーし​​、存在する小さな bash スクリプトです。

ただし、最後のメッセージを出力した後、終了していないように見えますが、永久にハングします。

私は何かをするのを忘れていますか?これをデバッグするにはどうすればよいですか?

VirtualBox マネージャーを使用して VM を閉じると、head が次のようなスタック トレースを取得します。

/Applications/Vagrant/embedded/gems/gems/net-ssh-2.6.7/lib/net/ssh/ruby_compat.rb:30:in `select': closed stream (IOError)

ホスト OS: OS X Snow Leopard ゲスト OS: Precision32 経由の Ubunut

ティア

4

2 に答える 2

4

これは本当にコメントですが、コメントとして投稿するのに十分な評判がありません。

この問題をデバッグするための 2 つの手法を提案します。

1) Vagrant でのデバッグを次のように有効にします。

VAGRANT_LOG=info vagrant up

2)set -xシェル スクリプトの先頭で、実行時に作成される出力にシェル スクリプトの 1 行をリンクするように定義します。これにより、シェル スクリプトのどの行がハングしているかを確認できます。

Vagrantfile で質問を更新することも、正しい方向に導くのに役立ちます。

于 2013-06-28T23:06:37.133 に答える
1

この問題は、Vagrant リリース 1.2.4 以降で解決されるはずです。これには、シェル プロビジョナーの終了時に ssh チャネルを閉じる修正が含まれています。

于 2013-08-21T18:08:40.013 に答える