Consulting djbware Publications

daemontoolsx

From daemontools to daemontoolsx

Long before Lennart Poettering raised Pid one aka systemd, there where several attempts to provide a more elegant and versatile management for long-running processes (so-called daemons) on Unix. Some of you may remember:

Prior of the last both, Dan Bernstein created his daemontools package in 1999 including some of his other tools for logging and time-stamping but it was not forseen as a substitude for the Unix PID 1. While in Linux the /proc filesystem is acting as a user-space replica of the processes and their attributes under control of the Unix kernel, with daemontools the directory /service is tailored to host start scripts and management capabilities for daemons including their logging. Logging is required for any type of Internet services.

Figure: Sample of invoking supervise from svscanboot for <daemon> under /service with logging (translated drawing from my 2002 Qmail book)

The initial qmail was released in 1995 with the assumption to run under inittab or by means of System V's rc scripts, the later djbdns used the daemontools facility to a large extend and installation was based on it. This still happens given a primitive init or PID 1 initial user space process.

The daemontools were adopted by

Initially, I did not see the requirement to complement those excellent working software packages by an own fork, but given the original daemontools, one important feature is missing, which is particularily present in systemd: Process dependencies on start. This was the trigger for daemontoolsx.

Features of daemontoolsx

Apart from those changes, daemontoolsx is '1:1' feature and API identical to the daemontools. Unless you need the above features, you can stay with the orginal daemontools package or any of the others.

Sources

Version & Download Description fehQlibs version Verification
daemontoolsx-1.06 The first release of daemontoolsx based on daemontools 0.76. fehQlibs-31 MD5: dfe6daf8e1962da350d6f34e7df2a911
Build: 20260531112543

daemontoolsx's source files are documented in doxygen.

Documentation

The included documentation for daemontoolsx is still brief:

Based on my Qmail book from 2002, I've prepared a daemontools 'ABC' for your convenience.

For further information check:

Man pages

daemontoolsx comes with a set of concise man pages. To become familiar with its concept, start reading supervise.

Processes management Logging/monitoring and timestamps Supplementary tools
supervise multilog envdir
svc readproctitle envuidgid
svok fghack
svstat tai64n prgrphack
svscanboot tai64nfrac setlock
svscan tai64nlocal setuidgid
softlimit

How to install daemontoolsx

In order to get a working version of daemontoolsx, you need to install the fitting fehQlibs in the first place. Please follow instructions here.

Tickets, Change Requests, communication

An Ezmlmx mailing list keeps you updated with current developments, bug fixes, and features discussed. This list also can be used to file

To inscribe use: daemontoolsx mailing list

As usual, I can't guarantee a certain response level; but reasonable issues will be answered.