commit 34ae064944b430001a47431bafd45115016e42e5 Author: dave Date: Mon Oct 17 23:04:29 2016 -0700 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..cdd1cfc --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +Overlordd +========= + +A sane alternative to Circusd and Supervisord + +Supervisord quips: + +- Can't restart processes forever +- Can't relate processes to one another (z requres x, y) +- No clean way to do one-shot scripts + +Circusd quips: + +- Can't relate processes to one another (z requres x, y) +- No clean way to do one-shot scripts +- Difficult to install in docker (on ubuntu, requires python-pip apt pkg with gcc, 120MB of deps) + +Example config: + +(broken into sections) + +``` +[overlord] +forever=true +configdir=/etc/overlord/ +``` + +This section contains global options for overlord. The above are defaults. Forever means processes should be restarted +forever. All files in the config dir will be processed, alphabetically, as if they were part of the main config. + +``` +[script:setup] +cmd = /path/to/presetup.sh +``` + +"Script" are one-shot processes. Scripts will NOT be run unless a daemon asks for it (by depending on it) + +``` +[daemon:cacheserver] +cmd = /path/to/redis +``` + +"Daemon"s are process that are meant to be kept running forever. + + +``` +[daemon:myapp] +cmd = ... +deps = setup:always, cacheserver:bounce +``` + +Another daemon. This one specifies that some other resources should be processed before starting this daemon. Deps is a +comma-separate list of the required resources in the form of `name:state`. + +States for daemons + +- `ok`: the referenced daemon started successfully +- `bounce`: the referenced daemon started successfully, though if it restarts restart this daemon too + +States for scripts: + +- `ok`: the referenced script executed successfully (return code == 0) + + +Options: + +- cmd - the command to run. interpreted in a shell. +- dir - working dir to set +- uid - user name to execute as +- gid - group name to execute as + +Daemon-only args + +- max_age - max process lifetime in seconds. after this duration the process will be killed. +- stop_signal - signal to send when stopping the process (default = TERM) +- respawns - maximum number of times to restart the process +- warmup - how many seconds must the process live to be considered OK +- deps - ordered list of prerequisites to start this daemon. Format is resourcename:resourcestatus