How to kill ruby on rails WEBrick server daemon

I have been running a rails app on a machine, which I can’t restart (no root access) or physically pull the plug on, just using the prepackaged rails server, WEBrick. But I quickly found out that it was not that easy to kill my app. I’d run something like script/server -d -p 25000 > /dev/null .
Notice that -d puts the server in daemon mode and > /dev/null sends all the standard out to /dev/null .
I tried to kill the app using top and then killing with the process ID, then tried pgrep and kill on the command line, to no avail.

Finally I found the (simple) solution that I’ll repost here. On the command line of the machine running the server:

pgrep ruby

This will give you the process id of the rails app (assuming you don’t have another ruby app running). Note: if pgrep is not available on your machine try using the command:

top

and look for the id of a process called ‘ruby’.

Now kill that process using the command:

kill -9 [id]

Where [id] is the process id given by pgrep.

Update:
It seems kill -9 may be jumping the gun and perhaps you ought to be safe and follow the advice I found elsewhere.
I’ll reiterate his point here. After finding the process id using prgep issue the following commands waiting five seconds before trying the next one until the kill succeeds:


kill pid 
kill pid
kill -INT [id]
kill -INT [id]
kill -KILL [id]
kill -KILL [id]

Notice that -KILL is the same as -9 .

Tags: , , , , , , , , , ,

5 Responses to “How to kill ruby on rails WEBrick server daemon”

  1. Bryce says:

    I was a bit surprised and chagrined at how hard it was for me to find out how to stop WEBrick server on the Net — I finally a found clear, no nonsense ‘how-to’ on your site (http://www.alecjacobson.com/weblog/?p=28).

    Kudos and thanks!

    -Bryce

  2. ajx says:

    Thanks for the comment! I was surprised when I went looking too. Hopefully more people will find this and figure it out.

  3. Tyler Collier says:

    Thank you! Like the two before me, I was surprised at how hard it was to find info on this. Your solution was straightforward, fast, and correct.

  4. Daniel says:

    Thanks! To sum up, WEBrick ignores the usual SIGTERM, but does shut down cleanly on SIGINT.

  5. Kory says:

    Worked like a charm, tks

Leave a Reply