在 Sinatra 上启动某个进程,然后重定向回来(即使进程仍在运行)
我有一个 ruby 脚本,需要一些时间才能完成运行。我尝试运行此代码:
get "/run" do
exec "ruby #{"/home/user/script.rb"} &"
redirect '/'
end
但发生的情况是,我的 Sinatra 脚本会等待该过程完成。如何执行该脚本,使其在后台运行,而我的 Sinatra 脚本只是重定向回来?
谢谢!
I have a ruby script which takes some fare amount of time to finish running. I have tried running this code:
get "/run" do
exec "ruby #{"/home/user/script.rb"} &"
redirect '/'
end
But what happens is that, my Sinatra script then waits until the process is finished. How to execute that script so it is left to run in the background, and my Sinatra script just redirects back?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我遇到了类似的问题,以下是对我有用的问题。
I encountered a similar problem, and below is what worked for me.
您必须分叉并分离子进程。
假设 script.rb 就像
这对我有用。
You have to fork and detach the child process.
let's say script.rb is like
This works for me.