Home

daemontools

daemontools is a collection of small, open-source utilities for supervising and logging services on Unix-like systems. Created by Daniel J. Bernstein (djb) in the early 2000s, it provides a lightweight alternative to traditional init systems by ensuring that services are kept running and that their logs are handled in a consistent, reliable manner. The design emphasizes simplicity, robustness, and predictable failure modes, with a minimal set of concepts and little reliance on shell scripting.

Core components include svscan, supervise, runsv, runsvdir, svstat, svlogd, and multilog. svscan runs as a supervisor

Usage typically involves creating a service directory with a run script and an optional log/run script, then

History and influence: daemontools originated with Daniel J. Bernstein and has influenced later supervisor suites such

process
that
watches
a
service
directory
tree
(commonly
/service)
and
starts
a
per-service
supervisor
for
each
entry.
Each
service
is
defined
by
a
run
script,
which
should
start
the
daemon
and
stay
foreground
via
exec
so
that
supervise
can
monitor
it.
A
log
subdirectory
can
provide
logging
via
svlogd,
optionally
combined
with
multilog
for
buffering
and
rotation.
The
per-service
supervisor
(via
runsv)
restarts
the
service
if
it
exits;
svstat
reports
status
information.
starting
svscan
on
the
directory
to
enable
supervision.
Commands
such
as
svc
can
be
used
to
query
service
status
or
to
bring
services
up
or
down.
The
approach
yields
immediate
responsiveness
and
straightforward
process
lifecycle
management,
without
relying
on
a
custom
init
system.
as
runit
and
s6.
It
has
been
adopted
in
various
Unix-like
environments
and
is
distributed
under
a
permissive
BSD-style
license.