# Instant Rails as a Windows service

**URL:** <https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276>\
**Category:** Rails\
**Created:** [April 17, 2007, 7:40pm UTC](https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276 "2007-04-17T19:40:03Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [April 17, 2007, 7:40pm UTC](https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276/1 "2007-04-17T19:40:03Z")

</div>

Hi all,

My cohorts and I are working on a project which is nearing a general  
release. The project is a Inventroy System which keeps track of all  
computer systems at our company, this system reads from Active  
Directory and other systems to provide us with up to date information  
about our computer systems.

Anyway the problem is, I don’t know how to run Instant Rails as a  
WIndows service. As of now we have to have someone logged in at all  
times to keep this instance running.

Does anyone know how to run Instant Rails and WEBrick as a Windows  
2003 Service? I’ve tried Firedaemon but that failed miserably.

Any help would be greatly appreciated. Thanks!

Joe

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [April 17, 2007, 7:52pm UTC](https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276/2 "2007-04-17T19:52:04Z")

</div>

> My cohorts and I are working on a project which is nearing a  
> 2003 Service? I’ve tried Firedaemon but that failed miserably.  
> Dunno about instant rails but mongrel runs quite nicely as a windows  
> service, I’d give that a whirl.

Out of curiousity, if you’re using LDAP to talk to AD, which LDAP  
library are you using?

- donald

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [June 25, 2007, 4:31am UTC](https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276/3 "2007-06-25T04:31:29Z")

</div>

I’ve got a bunch of Instant Rails apps running as Windows services,  
and they work very well; the trick is to get Mongrel running as a  
service, not Rails itself. The only problem I’ve found is that I have  
to stop/start them occasionally, as they tend to slow down - I suspect  
something like a slow memory leak is the cause, but haven’t bothered  
to investigate it further as it meets my requirements as it currently  
stands.

From your app directory (under rails\_apps), type “mongrel\_rails  
service::install -h” and that’ll let you work out how to run mongrel  
as a Windows service. Work through this, and you’ll get a new Windows  
service created, pointing to your Rails app - starting this service  
will let you access the app through the TCP port you’ve nominated.

You’ll need to configure a new mongrel service for every Rails app you  
have, but that hasn’t been a problem for me - I just have e.g. ports  
5640, 7877, 3459, … all running different mongrel services. There’s  
probably an approach to getting this to scale to having multiple  
mongrel services pointing to a single Rails app, then applying load  
balancing on top of these several mongrel instances, but I’ve never  
had cause to investigate it.

Regards

Dave M.

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [June 22, 2007, 5:28pm UTC](https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276/4 "2007-06-22T17:28:17Z")

</div>

Joe wrote:

> Hi all,
> 
> My cohorts and I are working on a project which is nearing a general  
> release. The project is a Inventroy System which keeps track of all  
> computer systems at our company, this system reads from Active  
> Directory and other systems to provide us with up to date information  
> about our computer systems.
> 
> Anyway the problem is, I don’t know how to run Instant Rails as a  
> WIndows service. As of now we have to have someone logged in at all  
> times to keep this instance running.
> 
> Does anyone know how to run Instant Rails and WEBrick as a Windows  
> 2003 Service? I’ve tried Firedaemon but that failed miserably.
> 
> Any help would be greatly appreciated. Thanks!
> 
> Joe

Was this problem ever resolved? I’m in almost identical circumstances  
but I don’t know how to run Instant Rails as a Windows service…

Help is much appricated  
Gearoid

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [June 25, 2007, 2:51pm UTC](https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276/5 "2007-06-25T14:51:40Z")

</div>

David M. wrote:

> I’ve got a bunch of Instant Rails apps running as Windows services,  
> and they work very well; the trick is to get Mongrel running as a  
> service, not Rails itself. The only problem I’ve found is that I have  
> to stop/start them occasionally, as they tend to slow down - I suspect  
> something like a slow memory leak is the cause, but haven’t bothered  
> to investigate it further as it meets my requirements as it currently  
> stands.
> 
> From your app directory (under rails\_apps), type “mongrel\_rails  
> service::install -h” and that’ll let you work out how to run mongrel  
> as a Windows service. Work through this, and you’ll get a new Windows  
> service created, pointing to your Rails app - starting this service  
> will let you access the app through the TCP port you’ve nominated.
> 
> You’ll need to configure a new mongrel service for every Rails app you  
> have, but that hasn’t been a problem for me - I just have e.g. ports  
> 5640, 7877, 3459, … all running different mongrel services. There’s  
> probably an approach to getting this to scale to having multiple  
> mongrel services pointing to a single Rails app, then applying load  
> balancing on top of these several mongrel instances, but I’ve never  
> had cause to investigate it.
> 
> Regards
> 
> Dave M.

Hey -

This was a great help thanks. Got it working.  
Gearoid

---

<div class="post-metadata">

**Author:** ![joe](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b9e5f3/32.png) [@joe](https://www.ruby-forum.com/u/joe)\
**Post date:** [June 25, 2007, 3:08pm UTC](https://www.ruby-forum.com/t/instant-rails-as-a-windows-service/92276/6 "2007-06-25T15:08:02Z")

</div>

Hey all… watching this thread a bit…

Running Mongrel as a service under Windows works great, but please be  
aware  
that Rails is single-threaded. Without a load balancer, you stand the  
risk  
of forcing users to wait their turn. Also, running apps this way  
prevents  
you from using any sort of page caching, including static assets like  
images, etc.

Mongrel will choke under heavy loads, which is why you may be needing to  
restart them frequently.

I spoke about various deployment solutions for Windows in my talk at  
RailsConf… The easiest, of course, is simply Mongrel as a service.  
The  
best for multi-user deployments is Apache 2.2.

I’ve submitted a lot of these solutions to the upcoming Rails Deployment  
book, so I’m a little nervous about sending out detailed notes to  
everyone.  
However, if you need some help now, contact me directly and I’ll give  
you a  
nudge in the right direction.
