This manual documents the dmd service manager. It is used to
start and stop system services (typically daemons). It ensures that
this will work—by automatically starting services that are needed for
another service to run and avoiding that conflicting services are
started at the same time. It does so in a very flexible way. dmd is
the init system on the GNU system—the first user process that is
started when the system boots, typically with PID 1, running as
root, and taking care of system-wide services. It is also a
useful tool that assists unprivileged users in the management of their
As with all flexible software, it takes some work to learn how to use it. To make it as easy as possible for you, this manual contains a chapter that enables you to start using dmd without reading about all the details first Jump Start. The second chapter deco and dmd describes the programs in detail. The other chapters provide a reference with examples, where all possibilities that dmd provides are explained. An exception is the last chapter, which contains information for those brave enough to modify dmd itself.
The name dmd stands for Daemon Managing Daemons (or Daemons-Managing Daemon?).
This program is written in Guile, an implementation of the Scheme programming language, using the GOOPS extension for object-orientation, therefore Guile is also used as the language for the configuration (see GNU Guile Reference Manual). When you want to make use of advanced features of dmd, you should know how to work with Guile and GOOPS, but it has been tried to make using basic features of dmd possible without knowing how to program in Scheme at all.