从rails中的控制器内部启动进程

时间:2018-05-30 09:43:59

标签: ruby-on-rails ruby

我想从控制器内部启动一个进程。 我试过通常的

KPIBusiness

但没有任何事情发生。当我在fork块中尝试使用eval(代码)时,代码会运行,但它是运行它的实际rails服务器/ puma。这意味着当我终止进程时,我也会关闭整个服务器。

我之前有一些代码,我失去了它的工作,我几乎可以肯定它使用exec或eval或类似的东西创建了一个进程(因此返回了一个pid以便以后可以杀死它)和我记得用ps检查它是由某些rails运行但不是实际的整个服务器。

为什么fork没有阻止它运行?这样做的方法是什么? 并且,对于非测试目的和实际实现,如何使其完全独立于rails服务器?

1 个答案:

答案 0 :(得分:0)

您可以使用exec从Rails控制器内部执行shell命令。

我希望你也在寻找同样的东西。您在系统上启动的过程将完全独立于Rails服务器,如果在您点击命令时它正在运行,则会在ps命令下显示。

文档:http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-exec