在控制台中,我习惯输入其中之一:
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.execute ,它调用 ssh.shell_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 指向哪里?
最佳答案
你可以尝试在 fork 进程中进行
fork {
`your command`
}
关于ruby - 从 Vagrant 启动时,Passenger 停留在前台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11210913/