runsvdir starts a runsv(8) process for each subdirectory in the services directory dir, up to a limit of 1000 subdirectories. runsvdir skips subdirectory names starting with dots. runsv(8) must be in runsvdir’s PATH.
At least every five seconds runsvdir checks whether the services directory dir has changed. If it sees a new subdirectory in dir, it starts a new runsv(8) process. If it sees an old sudirectory where a runsv(8) process has exited, it restarts the runsv(8) process. If runsvdir sees a subdirectory being removed that was previously there, it sends the corresponding runsv(8) process a TERM signal, stops monitoring this process, and so does not restart the runsv(8) process if it exits.
If the log argument is given to runsvdir, all output to standard error is redirected to this log, which is similar to the readproctitle(8) log. To see the most recent error messages, use a process-listing tool such as ps(1). runsvdir writes a dot to the readproctitle log every 15 minutes so that old error messages expire.
If runsvdir receives a HUP signal, it sends a TERM signal to each runsv(8) process it is monitoring and then exits with 111.
http://smarden.org/runit/