how to configure a rails app (redmine) to run as a service on windows?

opensas picture opensas · May 18, 2009 · Viewed 18.4k times · Source

I'm using redmine as a ticket manager, and I'd like to configure it to be run automatically when windows starts up.

How can I configure it to be run as a service?

--

Just asked the question to document it, I hope somebody may find it useful...

Answer

opensas picture opensas · May 18, 2009

1. using webrick:

ref: http://www.redmine.org/boards/1/topics/4123

  • Download and install the Windows NT Resource Kit from http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en

  • Create the service by running this command:

    path\INSTSRV.EXE your_service_name path\SRVANY.EXE
    

    in my case path is:

    "C:\Program Files\Windows NT Resource Kit\INSTSRV.EXE" redmine_webrick "C:\Program Files\Windows NT Resource Kit\SRVANY.EXE"
    

    could be also C:\Program Files\Windows Resource Kits\Tools\.

  • Run regedit (Start -> Run -> regedit)

    • Add the following registry key if it's not already there:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\your_service_name

    • Right click on this registry key and select New -> Key. Name it Parameters.

    • Add two values to the Parameters key. Right click on the parameters key, New -> String Value. Name it Application. Now create another one named AppParameters. Give them the following values:

      • Application: PathToRuby.exe, eg. C:\ruby\bin\Ruby.exe
      • AppParameters: C:\RUBYAPP\script\server -e production, where RUBYAPP is the directory that contains the redmine website.

      Example: C:\redmine\script\server -p 2000 -e production (-p indicates the port webrick will be listening to, and -e the environment used)

Now you can go to Administrative Tools -> Services. There you can start your service (the one with name your_service_name) and test whether or not it is working properly. It should be noted that the service will be marked as started prior to WEBrick finishing its boot procedure. You should give it 1min or so before trying to hit the service to verify that it is working correctly.

2. using mongrel:

ref: http://mongrel.rubyforge.org/wiki ref: http://mongrel.rubyforge.org/wiki/Win32

first install mongrel and mongrel_service gem

gem install mongrel

gem install mongrel_service

then create the service

mongrel_rails service::install -N redmine_mongrel -c c:\redmine -p 3000 -e production

3. using thin:

References:

Instructions:

  1. First install thin (you'll need to install rack gem, if not already installed)

    gem install rack     
    gem install thin
    
  2. Follow the same steps indicated for webrick, but add another value named "AppDirectory". This is needed in order to avoid using c:\ruby\bin\thin.bat If I just pointed to the bat file, I couldn't stop the service.

    In HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\redmine_thin\Parameters add the following keys:

    Application: c:\ruby\bin\ruby.exe

    AppDirectory: c:\redmine

    AppParameters: c:\ruby\bin\thin start -p 4000 -e production

------------------------------------------------------------------------------------------

You can control any of your service with the following commands:

net start redmine_xxx

net stop redmine_xxx

sc config redmine_xxx start= auto

sc config redmine_xxx start= auto dependency= MySql

sc delete redmine_xxx