Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

This manual documents the dmd service manager. It is used to start and stop system services (typically daemons) in a reliable fashion. For instance it will dynamically determine and start any other services that our desired service depends upon. As another example, dmd might detect conflicts between services. In this situation it would simply prevent the conflicting services from running concurrently.

dmd is the init system of the GNU operating system—it is the first user process that gets started, typically with PID 1, and runs as root. Normally the purpose of init systems is to manage all system-wide services, but dmd can also be a useful tool assisting unprivileged users in the management of their own daemons.

Unfortunately all flexible software requires some time to master and dmd is no different. But don’t worry: this manual should allow you to get started quickly. Its first chapter is designed as a practical introduction to dmd and should be all you need for everyday use (see Jump Start). In chapter two we will describe the deco and dmd programs, and their relationship, in more detail (deco and dmd). Subsequent chapters provide a full reference manual and plenty of examples, covering all of dmd’s capabilities. Finally, the last chapter provides information for those souls brave enough to hack 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. Guile is also dmd’s configuration language (see GNU Guile Reference Manual). We have tried to make dmd’s basic features as accessible as possible—you should be able to use these even if you do not know how to program in Scheme. A basic grasp of Guile and GOOPS is required only if you wish to make use of dmd’s more advanced features.

Next: , Previous: , Up: Top   [Contents][Index]