【问题标题】:Ruby on Rails 4 executing shell command daemonRuby on Rails 4 执行 shell 命令守护进程
【发布时间】:2015-02-22 11:50:13
【问题描述】:

我使用内置选项来分发我的 Ruby on Rails 应用程序。 意思是我用

启动服务器
rails s -e production -p 80 -d

但是,一旦我将守护进程标志 -d 附加到此命令,我就无法再执行 shell 命令...

我尝试了多种执行命令的可能性,例如:

system(cmd)

%x[ #{cmd} ]

`#{cmd}`

Process.detach(spawn(cmd))

Process.fork do
  p = spawn(cmd)
  Process.detach(p)
end

我不知道我还能做什么......
非常感谢您的提示/解决方案...

运行系统的一些信息:
操作系统:Ubuntu 14.04 LTS
铁路版本:4.0.2
我通过 ssh 登录到计算机并启动 rails 服务器
我已经测试了上面列出的所有命令,它们都可以在没有 daemon 标志的情况下工作,但不能使用它......

提前致谢。
问候亚历克斯

【问题讨论】:

    标签: shell ruby-on-rails-4 spawn


    【解决方案1】:

    发现失败。

    作为守护进程的服务器和没有进程/shell命令之间没有连接。

    我只是傻到看错目录了...

    注意: 如果您将 rails 服务器作为守护进程执行,则它不再是用户的进程,而是根的进程。下次检查所有路径是否都是防弹的。

    【讨论】:

    • 那么你是如何解决这个问题的?我现在遇到了这个问题。