从Rails应用程序

时间:2015-05-01 09:16:34

标签: ruby-on-rails node.js

我正在尝试将一些node.js代码与我的Rails应用程序集成。基本上它是一个带有一些代码的js文件,该进程将继续在后台运行。

我已按照以下步骤操作:

  • 在某些test_node.js文件中的rails app的根目录中添加了代码。
  • 现在我要做的是使用ruby的exec函数将值传递给我的系统,例如exec“node test_node.js”。
  • 这样可以很好地工作,但它会使我的服务器无法处理任何请求。
  • 要将它传递给后台我尝试使用nohup例如:exec“nohup node test_node.js”。
  • 当我运行此代码时,我的服务器崩溃了。

我是Rails开发人员,从未在节点应用程序上工作,所以不知道我是否采用了正确的方法。

1 个答案:

答案 0 :(得分:3)

exec用新的进程替换当前正在运行的进程。因此,要在后台运行某些内容,您应该在孩子中forkexec

fork { exec('node', 'test_node.js', ...) }

nohup不需要。

另见Ruby, Difference between exec, system and %x() or Backticks