1

コンソールでは、次のいずれかを入力することに慣れています。

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 を使用して、次のようなテストを作成したいと思います。

  1. 自動的に Passenger を起動し、その後
  2. 他のことをする。

しかし、スクリプトは他に何もできません。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 にアクセスできなくなりました。私は興味があるので、標準入力がどこを指しているのか誰か知っていますか?

4

1 に答える 1

0

フォークされたプロセスでそれを試すことができます

fork {
  `your command`
}
于 2012-06-26T22:18:07.143 に答える