There's a very highly rated application for defect management called Redmine. It's written in Ruby. I was able to get it working following their instructions. However, I would like to run the application as a service that starts automatically every time the server reboots. How do you go about adding a Ruby website as a Linux service?
4 Answers
If you're on a recent version of Ubuntu, you'll want to write an Upstart script - as well as that introduction, /etc/init is full of examples.
If you're on anything else, you'll want to create an init script - the redmine wiki has an example, specifically tailored for redmine.
There's no such thing as a "Ruby website"; a Rails site needs an application server process running to serve requests for the app, this is typically one of mongrel, thin, or unicorn (if you're using webrick, you're on a loser already).
Your options are, broadly:
- Write an init script for it, invoke that init script on boot as per the procedure for your particular distribution
- Use an @reboot rule in cron (uuuuugly)
- Use something like daemontools to manage the server process
I do (3), because it is awesome. I expect a lot of people to recommend monit in place of daemontools; I've done that, and I hated every second of it.
You may be interested in this:
http://rubyworks.rubyforge.org/
Once having your system set up properly to run as a real server for Ruby stuff, you can then insert your Redmine application into it's environment.
-
The cluelessness contained in that one page scares the wallop out of me.– womble ♦Jan 6, 2010 at 0:32
If you have apache or some other web server already running, you don't need to run Redmine as a separate service - just have it run under your web server. For Apache Just follow the instructions for installing Passenger here:
http://www.modrails.com/install.html
And then add an entry in Apache that points to the path to that site, like so:
<VirtualHost *:80>
ServerName www.mycook.com
DocumentRoot /webapps/mycook/public
<Directory /webapps/mycook/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>