Nick
Nick

Reputation: 11

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.

Upvotes: 1

Views: 1131

Answers (3)

zlx_star
zlx_star

Reputation: 584

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.

Upvotes: 0

blizzard
blizzard

Reputation: 5365

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

Upvotes: 3

Sean McCleary
Sean McCleary

Reputation: 3820

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 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.

Upvotes: 0

Related Questions