Firestarter is simple process and shared socket manager, it designed like circus and einhorn.
Firestarter can manage groups of processes and shared sockets like circus. And like einhorn we support manual ack. And you can control Firestarter daemon, such as increasing worker process from ctrl command.
Firestarter shares sockets using the systemd socket passing protocol
(LISTEN_FDS).
Firestarter uses explicit configuration files rather than complex command line options.
You can get firestarter
by installing it with cargo:
$ cargo install firestarter
Firestarter is process and shared socket manager. Run firestarter -h
to see detailed usage.
``` firestarter process and shared socket manager
USAGE:
firestarter
FLAGS: -h, --help Prints help information -V, --version Prints version information
SUBCOMMANDS: ctrl Run control client help Prints this message or the help of the given subcommand(s) list Show worker names run Run daemon status Show worker status ```
Example
$ firestarter run --config misc/config.toml
The configuration file uses toml. An example is below.
``` [web1] # set worker group name
cmd = ["./demo/target/debug/demo"]
numprocesses = 2
restart = "on-failure"
warmup_delay = 1
start_immediate = true
socket_address = ["127.0.0.1:4000", "127.0.0.1:4001"]
environments=["TESTA=XXXX", "TESTB=YYYY"]
ack = "manual"
[web2] # set other worker group name
...
```
Firestarter also provides a client that controls the running daemon.
For example, you can check the status with the following command.
$ firestarter ctrl web1 status
send ctrl command [status] to [web1] worker
[web1] active
processes [24170, 24171]
time 00:00:06
For details, please refer to the help firestarter ctrl -h
.
Contributions are extremely welcome! Please push PR to dev
branch.