コンソールでは、次のいずれかを入力することに慣れています。
cd /vagrant/project/ && rvm passenger start -p80 -d --user vagrant -e vagrant
cd /vagrant/project/ && rvm passenger start -p80 --user vagrant -e vagrant &
Passenger が始動し、再び私に制御を与えます。
今、Vagrant を使用して、次のようなテストを作成したいと思います。
- 自動的に Passenger を起動し、その後
- 他のことをする。
しかし、スクリプトは他に何もできません。Passenger にスタックしたままです。
私はssh.shell_executeを呼び出すssh.executeを使用しています:
shell_execute(???? , "cd /vagrant/project/ && rvmsudo passenger start -p80 -d --user vagrant -e vagrant" , false)
誰にも解決策がありますか?または、この問題がどこから来ているのか誰にも分かりますか?
最後に、私はそれを機能させるdeerty hackを見つけました:
shell_execute(???? , "cd /vagrant/project/ && rvmsudo passenger start -p80 -d --user vagrant -e vagrant </dev/null &>/dev/null" , false)
しかし、私はよくわかりません。スクリプトで stdin にアクセスできなくなりました。私は興味があるので、標準入力がどこを指しているのか誰か知っていますか?