---
name: "multiwatch"
section: "1"
platform: "linux"
package: "multiwatch"
version: "1.0.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/multiwatch"
---

# multiwatch(1)

forks and watches multiple instances of a program in the same environment

## NAME

multiwatch - forks and watches multiple instances of a program in the same environment

## SYNOPSIS

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

**multiwatch** -v

**multiwatch** --help \| -?

## DESCRIPTION

*multiwatch* is used to fork and watch multiple FastCGI backends.

## OPTIONS

- **-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

## SIGNAL HANDLING

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.

## EXAMPLE

- 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**

## SEE ALSO

[spawn-fcgi(1)](/spawn-fcgi/1.md)

## AUTHOR

Stefan Buehler \<source@stbuehler.de\>.
