1

在控制台中,我习惯于输入以下之一:

cd /vagrant/project/ && rvm passenger start -p80 -d --user vagrant -e vagrant
cd /vagrant/project/ && rvm passenger start -p80  --user vagrant -e vagrant &

乘客启动并再次给我控制权。

现在,使用 Vagrant,我想进行以下测试:

  1. 自动启动Passenger,然后
  2. 做其他事情。

但是脚本不能做任何其他事情;它停留在乘客中。

我正在使用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)

但我真的不明白。脚本中不再可以访问标准输入。我很好奇,有谁知道标准输入指向哪里?

4

1 回答 1

0

您可以尝试在分叉过程中执行此操作

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