multiwatch(1) forks and watches multiple instances of a program in the same environment


multiwatch [options] -- <application> [app arguments]

multiwatch -v

multiwatch --help | -?


multiwatch is used to fork and watch multiple FastCGI backends.


-f, --forks=children
Number of children to fork and watch (default 1)
-r, --retry=retries
Number of retries to fork a single child (default 3)
-t, --timeout=msecs
Retry timeout in ms; if the child dies after the timeout the retry counter is reset (default 10000 ms = 10 s)
-s, --signal=signame
Signal to send to children to signal 'graceful' termination (HUP,INT,QUIT,TERM,USR1,USR2, default is USR1)
-?, --help
General usage instructions
-v, --version
Show version and exit


multiwatch will forward the signal USR2; if it receives HUP,INT,QUIT,TERM or USR1, it will send the signal from --signal to the children; if it receives another signal from that group, it will forward the signal again.

A signal of the group HUP,INT,QUIT,TERM and USR1 tells multiwatch to go into "shutdown" mode, so it won't restart children after receiving it.


Spawn 2 rails instances on the same FastCGI socket (and supervise them):
spawn-fcgi -s /tmp/fastcgi-rails.sock -n -- /usr/bin/multiwatch -f 2 /home/rails/public/dispatch.fcgi


Stefan Buehler <[email protected]>.