about summary refs log tree commit homepage
path: root/site/src/docs/win32.page
diff options
context:
space:
mode:
Diffstat (limited to 'site/src/docs/win32.page')
-rw-r--r--site/src/docs/win32.page131
1 files changed, 131 insertions, 0 deletions
diff --git a/site/src/docs/win32.page b/site/src/docs/win32.page
new file mode 100644
index 0000000..c3e386f
--- /dev/null
+++ b/site/src/docs/win32.page
@@ -0,0 +1,131 @@
+---
+title: Win32 HOWTO
+inMenu: true
+directoryName: Documentation
+---
+
+h1. Mongrel Win32 HOWTO
+
+Mongrel now supports Win32 much better than previous releases thanks to
+some "great people":../attributions.html and their hard work.  You can
+now run Mongrel with Ruby on Rails as a windows service, ang there are
+pre-compiled gems available for people to use.
+
+*Before reading this document you need to read "Getting Started.":started.html and make sure it works.*
+
+h2. Installing Service Support
+
+Mongrel used to have a separate mongrel_rails_service script but this
+caused problems and has since been unified into just mongrel_rails
+and a special GemPlugin that gives you a set of service:: commands.
+
+To install the mongrel_service GemPlugin you simply install mongrel and
+then do:
+
+  > gem install mongrel_service
+
+This will give you a set of service commands that you can find out about
+by just running mongrel_rails and then passing each one the -h option to
+get help.
+
+
+h2. Running The Service
+
+After you do the gem install, find a Rails application you want to run
+and do:
+
+ $ mongrel_rails service::install -N myapp \
+     -c c:\my\path\to\myapp -p 4000 -e production
+ $ mongrel_rails service::start -N myapp
+
+Now hit the port and poof, works (or should).
+
+The application will stop if you use:
+
+ $ mongrel_rails service::stop -N myapp
+
+@NOTE: Stop reports an exception but does stop the service.@
+
+Now the really great thing is that you can just do all this from
+the Services control panel like your Rails application is a regular
+Windows service.
+
+Even works in development mode, which is pretty nice.  I use win32
+at work now and what I have setup is three services:  myapp_dev,
+myapp_stage, myapp_prod.  I point dev and stage at the same
+directory but run dev in *development* mode and stage in *production*
+mode.  Then I have myapp_prod in a separate directory and when I'm
+about to claim I've got something to release I'll go simulate a
+subversion check-out and run my tests again.
+
+
+h2. Other Service Commands
+
+There is a full set of service control commands in the mongrel_service plugin.
+This lets you use either the Services control panel or a command line script to
+manage your Rails applications.  What's also nice is that you can register as many
+applications as you want, and even the same one with different names.
+
+
+h3. service::install
+
+If you want to run the same app in different modes then use the *-N* option to the *install*
+command:
+
+ $ mongrel_rails service::install -N myapp_dev \
+     -c c:\my\path\to\myapp -p 4000 -e development
+ $ mongrel_rails service::start -N myapp
+
+You can also use the *-D* option to give the service a different display name in the
+Services console.
+
+h3. service::start
+
+Pretty much just takes a service name to start up.  It will run and print a message
+until the service finally starts, which sometimes can take 10-60 seconds.
+
+h3. service::stop
+
+Sort of works right now and also only takes a -N parameter.  It has a few errors
+when it tries to stop a service so we're working on making it cleaner.
+
+*NOTE:* since mongrel_service 0.3.1, start and stop commands were removed.
+Use net start / net stop instead.
+
+h3. service::remove
+
+Takes the name (-N) of the service to remove and then removes it from the list.
+*This would be how you'd remove a service so you can change it's start-up options.*
+
+
+h2. CPU Affinity
+
+Mongrel's win32 support actually is able to set the CPU affinity of a running
+Mongrel service.  This is pretty neat since it means if you're running a
+fancy SMP machine or a dual core that pretends to be SMP, then you can
+force Mongrel onto one of them and get a nice little boost.
+
+It's pretty easy to use, just pass the *-u or --cpu* option to the *install*
+command and give a CPU of 1-X.  That means if you have 4 CPUs and you want
+Mongrel on #4 then do:
+
+ $ mongrel_rails service::install -N myapp \
+     -c c:\my\path\to\myapp -p 4000 -e production -u 4
+
+Pretty much the same command, just one more option and you're done.
+
+
+h2. Making you Service autostart with Windows
+
+By default, the new Mongrel service get installed to be run _manually_, using
+Mongrel's commands or the Service Manager. You could tweak it to start automatically
+when Windows start, just use the Service Control commandline tool:
+
+ $ sc config myapp start= auto
+
+Also, you can configure the services that are neede to make it work, like database
+support:
+
+ $ sc config myapp start= auto dependency= MySql
+
+The space after the equal sign is needed for the command to complete successfully.