From 20c7cf9d704b9189ef067348f4737699d799f013 Mon Sep 17 00:00:00 2001 From: rasul Date: Fri, 25 Oct 2019 14:20:23 -0500 Subject: [PATCH] put some good stuff in the readme --- README.md | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 88 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f4de22a..bb3547d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,89 @@ -this is a work in progress +Sup is a small and simple process supervisor. Configuration file is sup.toml in +the current directory. -the idea is to be a sort of process/session manager sorta .xinitrc replacement -thing for x. configure the stuff you want to run in sup.toml then run sup. there -is no documentation at this time, so probably don't use this. +## Installing + +``` +cargo install https://gitlab.com/rascul/sup +``` + +## Running + +Sup must find the config file sup.toml in the current directory. + +## Features + +### Restart + +Sup can be configured to restart an application when it stops. There are three +conditions sup can watch for: + +* Success: In this case, the application has done a normal shutdown and the +exit status is 0. +* Failure: If the application exits with a non zero exit status it is +considered to have failed. +* Terminated: The application was killed by some other mechanism. + +### Holds + +A hold may be placed on any number of application. If there are any holds, sup +will keep track and while any held applications are running, sup will not exit. +When all held applications are no longer running, and are not configured to +restart anymore, sup will close the other applications and shutdown. If no holds +are specified, sup will just keep running until it's killed. + +## Configuration File + +The configuration file is sup.toml and will be found in the current directory +when starting sup. This will change in the future. Sup uses the +[toml](https://github.com/toml-lang/toml) format to describe each application +to supervise. + +### `[[App]]` + +Each application instance to monitor will have an `[[App]]` section. The apps +will be started in the order as read from the file. + +#### Required Entries + +* name: The name of the application. +* command: The command to run, including path if necessary. +* args: An array of arguments to pass with the command. May be an empty array. + +#### Optional Entries + +* restart_on_success: Restart the app if it exits successfully. (Default: false) +* restart_on_failure: Restart the app if it fails. (Default: false) +* restart_on_terminate: Restart the app if it is terminated. (Default: false) +* wait: Don't run the next app until this one is finished. (Default: false) +* hold: Don't exit sup until this app has finished. (Default: false) + +### Example + +``` +[[app]] +name = "x resource" +command = "xrdb" +args = ["~/.Xresources"] +wait = true + +[[app]] +name = "terminal" +command = "alacritty" +args = [] +restart_on_success = false +restart_on_failure = true +restart_on_terminate = true +hold = true + +[[app]] +name = "environment" +command = "alacritty" +args = ["-e", "env"] + +[[app]] +name = "window manager" +command = "twm" +args = [] +hold = true +```