ruby - 从 Vagrant 启动时,Passenger 停留在前台

标签 ruby linux ssh passenger vagrant

在控制台中,我习惯输入其中之一:

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.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/

相关文章:

ruby-on-rails - 如何 'rake spec' 一个目录,例如楷模?

ruby-on-rails - Ruby 升级权限错误(Errno::EACCES)

linux - 如何添加一行或用 awk 或 sed 替换第一行

android - Linux 上更快的 android 模拟器

python os.system 似乎无缘无故挂起

ruby - 如何获取由Base64编码字符串创建的图像中显示的值?

c++ - 在 C++ 和 Linux 中显示时钟的最简单方法

node.js 无法通过 ssh 访问

git - 我在存储库中发布了我的 SSH 私钥

ruby - Ruby 中的选项菜单