Instant Rails as a Windows service


#1

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


#2

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

#3

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.


#4

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


#5

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


#6

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.