Skip to main content

Daemontools

Posted in

daemontools is a collection of tools for managing UNIX services that was created by Daniel J. Bernstein.

To simplify management of the various daemons on the server, install daemontools. Asides from some other benefits, a really nice thing about daemontools is that gives a consistent means of managing different services rather than a mish-mosh of different init scripts, rc.d scripts, etc.

Installation
Setup a directory to download your source file into:

mkdir -p /package
chmod 1755 /package
cd /package

Download the current version of daemontools

wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar zxpf daemontools-0.76.tar.gz
cd admin/daemontools-0.76

This command fixes "the errno problem" with glibc 2.3 and newer, and should be safe to use on any system.
sed -i '/extern int errno/{s/^/\/* /;s/$/ *\//;G;s/$/#include <errno.h>/;}' src/error.h

This command fixes the problem with Mac OS X 10.4, and should only be used on OS X 10.4 machines.
echo x >> src/trypoll.c

Compile and install daemontools:
package/install

/service is meant to only hold symbolic links to the actual service directories. So create a directory in /var to hold them:
mkdir /var/service

CentOS 6 Specific
Starting daemontools with Upstart
The installer added a line to /etc/inittab to start svscan automatically, however that is obsolete in CentOS 6.x.
Remove the added line from /etc/inittab.
Create a new file /etc/init/svscan.conf, with the startup code in it:
cd /etc/init
echo "start on runlevel [12345]" > svscan.conf
echo "respawn" > svscan.conf
echo "exec /command/svscanboot" > svscan.conf

Tell init to re-read its configuration files and start svscanboot:
initctl reload-configuration
initctl start svscan

http://www.kluner.net/2011/04/04/daemontools-on-redhat-enterprise-6-0