supervise − starts and monitors a service.
supervise switches to the directory named s and starts ./run. It restarts ./run if ./run exits. It pauses for a second after starting ./run, so that it does not loop too quickly if ./run exits immediately.
If the file s/down exists, supervise does not start ./run immediately. You can use svc(8) to start ./run and to give other commands to supervise.
supervise maintains status information in a binary format inside the directory s/supervise, which must be writable to supervise. The status information can be read by svstat(8).
supervise may exit immediately after startup if it cannot find the files it needs in s or if another copy of supervise is already running in s. Once supervise is successfully running, it will not exit unless it is killed or specifically asked to exit. You can use svok(8) to check whether supervise is successfully running. You can use svscan(8) to reliably start a collection of supervise processes.