parent
93f22c7dc3
commit
20c7cf9d70
@ -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
|
||||
```
|
||||
|
Loading…
Reference in new issue