s6
Software
skarnet.org
 The s6-svscanctl program 
s6-svscanctl sends commands to a running s6-svscan
process.
 Interface 
     s6-svscanctl [ -zabhitqnN ] scandir
s6-svscanctl sends the given series of commands to the
s6-svscan process monitoring the
scandir directory, then exits 0. It exits 111 if it cannot send
a command, or 100 if no s6-svscan process is running on scandir.
 Options 
 -  -z : destroy zombies. Immediately triggers s6-svscan's
reaper mechanism. 
-  -a : Alarm. s6-svscan will immediately perform a scan
of scandir to check for services. 
-  -b : abort. s6-svscan will exec into its finishing
procedure. It will not kill any of the maintained s6-supervise processes,
unless a t or q option is also present before the b
option in the s6-svscanctl invocation. 
-  -h : Reload configuration. s6-svscan will perform a scan,
and destroy inactive services. Equivalent to -an. 
-  -i : equivalent to -t below. 
-  -t : Terminate. s6-svscan will send a
SIGTERM to all the s6-supervise processes supervising a service and a
SIGHUP to all the s6-supervise processes supervising a logger, then exec into
its finish procedure. This means that services will be brought down but
loggers will exit naturally on EOF, and s6-svscan will wait for them to exit
before exec'ing into .s6-svscan/finish or exiting itself: it's a
clean shutdown with no loss of logs. 
-  -q : Quit. s6-svscan will send all its s6-supervise processes
a SIGTERM, then exec into its finish procedure. This is different from -t
in that services and loggers will be forcibly killed, so the quit
procedure may be faster but in-flight logs may be lost. 
-  -n : nuke. s6-svscan will kill all the
s6-supervise processes it has launched but that did not match a service
directory last time scandir was scanned, i.e. it prunes the
supervision tree so that it matches exactly what was in scandir
at the time of the last scan. A SIGTERM is sent to the s6-supervise processes
supervising services and a SIGHUP is sent to the s6-supervise processes
supervising loggers. 
-  -N : Really nuke. Does the same thing as -n,
except that SIGTERM is sent to all the relevant s6-supervise processes, even
if they are supervising loggers. This is not recommended in a situation where
you do not need to tear down the supervision tree. 
 Internals 
s6-svscanctl writes control commands into the scandir/.s6-svscan/control
FIFO. An s6-svscan process running on scandir will be listening to this FIFO,
and will read and interpret those commands.