Your next favorite supervisor component.
Ramona is an enterprise-grade runtime supervisor that allows controlling and monitoring software programs during their execution life cycle.
It provides supervisor/console functionality of init.d-like start/stop control, continuous integration (e.g. unit/functional/performance test launcher), deployment automation and other command-line oriented features. It is design the way that you should be able to extend that easily if needed (e.g. to include your own commands or tasks).
It is implemented in Python but it is not limited to be used only in Python projects.
Target platforms are all modern UNIXes, BSD derivates and Windows.
Let's assume your project (named foo) directory looks as follow:
foo/
bin/
share/
src/
docs/
foo.py <--- this is Ramona
foo.conf
Ramona system will the provide you with following command-line API:
$ ./foo.py --help
usage: foo.py [-h] [-c CONFIGFILE] [-d] [-s]
{start,stop,restart,status,help,console,server,clean,unittests}
...
optional arguments:
-h, --help show this help message and exit
-c CONFIGFILE, --config CONFIGFILE
Specify configuration file(s) to read (this option can
be given more times). This will override build-in
application level configuration.
-d, --debug Enable debug (verbose) output.
-s, --silent Enable silent mode of operation (only errors are
printed).
subcommands:
{start,stop,restart,status,help,console,server}
start Launch subprocess(es)
stop Terminate subprocess(es)
restart Restart subprocess(es)
status Show status of subprocess(es)
help Display help
console Enter interactive console mode
server Launch server in the foreground