This is a pocket process manager. At some point it will be a better imitation of systemd
Take a look at this .
Using it is very simple, just drop a rust-pm.toml in the same folder your
rust-pm
starts with a config like:
toml
server-port = "localhost:4000"
[bad_sleeper] # Process name
command = "./bad_sleeper.py" # right now support 0 args commands
max_retries = 3 # 0 means forever
And with luck you open your browser at localhost:4000
and will see something like:
json
[{
"command" : "./bad_sleeper.py",
"max_retries" : 0,
"name" : "bad_sleeper",
"status" : {
"meta" : 1,
"state" : "running"
}
}]
rust-pm
start and watch the process. If it fails it starts another instance for maximum max_retries
times.
By now the stdin
, stdout
and stder
are piped. We may change it to inherited, so the rust-pm
output is in fact the process output. It depends on what we will do for logging.
This is a early stage project, Not used in production yet.
max_retries
to mean infinite. DONEworkdir
for processes.writeln!
since specific threads handle stdout
.writeln!
rust-pm
can be put on $PATH
and run with any config file.MIT