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 .
-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
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:
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:
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
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]
-KILL is the same as