在后台进程中运行rails -windows

时间:2013-02-07 08:43:47

标签: ruby-on-rails windows ruby-on-rails-3.2 detach

我在Windows PC上的rails安装程序上创建了一个桌面浏览器应用程序。现在我正在尝试运行rails s -p3001 -e production -d。它不能在电脑上运行。

如何在Windows PC上分离应用程序服务器进程?

这是错误

=> Booting Thin
 > Rails 3.2.7 application starting in production on http://0.0.0.0:3000
C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.7/lib
/active_support/core_ext/process/daemon.rb:3:in `fork': fork() function is unimp
lemented on this machine (NotImplementedError)
    from C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupp
 ort-3.2.7/lib/active_support/core_ext/process/daemon.rb:3:in `daemon'
    from C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.4.1
/lib/rack/server.rb:314:in `daemonize_app'
    from C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.4.1
 /lib/rack/server.rb:254:in `start'
    from C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3
.2.7/lib/rails/commands/server.rb:70:in `start'
from C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3
2.7/lib/rails/commands.rb:55:in `block in <top (required)>'
    from C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3
2.7/lib/rails/commands.rb:50:in `tap'
    from C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3
.2.7/lib/rails/commands.rb:50:in `<top (required)>'
     from script/rails:6:in `require'
     from script/rails:6:in `<main>'

2 个答案:

答案 0 :(得分:1)

错误消息非常清楚:fork() function is unimp lemented on this machine (NotImplementedError)

rails服务器守护程序的方法是调用计算机上的fork system call。以下是rails repo:exit if fork

中的相关代码

Windows PC上的失败是因为Windows Operating System没有实现fork系统调用。

一个选项可能是按照this answer to What is the closest thing windows has to fork()?

中的建议在Windows PC上安装Cygwin

答案 1 :(得分:0)

我已经参考了链接:: run rails in background process -windows

解决了这个问题

感谢Murthy的答案