开发者

Webrick Fails to Run as Daemon, no Error Message

Running Ubuntu Server 10.04 with Rails 2.3.4 and Webrick 1.3.1; our rails app runs fine when called via script/server -e production, but trying to test it as a daemon by calling it with the -d flag produces the following output:

=> Booting WEBrick
=> Rails 2.3.4 application starting on http://0.0.0.0:3000

Nothing is produced in the logs, and other Rails 开发者_运维知识库applications will run detached without issue.


I assume You are running the Webrick in port 3000

>>$ sudo netstat -anp | grep 3000
tcp     0   0 0.0.0.0:3000       0.0.0.0:*          LISTEN      8822/ruby       
>>$ sudo kill -9 8822


I don't mean to contradict your choosing Webrick as a production server and maybe there is something I'm missing about why you are choosing Webrick, but have you considered other alternatives? I'd wager you already know all of this, but Webrick is the provided ruby server, and it is also the slowest ruby server choice.

Some of the most popular production server choices are:

  • Passenger
  • Thin
  • Mongrel
  • Unicorn
  • Glassfish

Passenger is likely the most popular choice for production now due to its easy configuration, speed, and features.

If there is a specific use case for Webrick that makes it better than any of the other server choices, I'd love to know.


You can add patch to enable error log here: https://github.com/rails/rails/blob/3-2-stable/activesupport/lib/active_support/core_ext/process/daemon.rb#L16

To

unless noclose
  STDIN.reopen "/dev/null"       # Free file descriptors and
  STDOUT.reopen "/dev/null", "a" # point them somewhere sensible.
  STDERR.reopen '/tmp/rails_daemon_err.log', 'a'
end

Now when you start rails server with -d, the error log will append to /tmp/rails_daemon.log.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜