Daemontools

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:

SV:123456:respawn:/command/svscanboot

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

CentOS 7
CentOS 7 uses systemd
Create a new file /etc/systemd/system/daemontools.service, with the startup code in it:

[Unit]
Description=daemontools Start supervise
After=getty.target

[Service]
Type=simple
User=root
Group=root
Restart=always
ExecStart=/command/svscanboot /dev/ttyS0
TimeoutSec=0

[Install]
WantedBy=multi-user.target

Start the service:

systemctl start daemontools.service

Test that it is running:

systemctl status daemontools.service

Enable it to start at boot:

systemctl enable daemontools.service

http://www.clever-devel.com/wiki/daemontools_starting_systemd

Daemontools-encore - adds numerous enhancements above what daemontools could do while maintaining backwards compatibility with daemontools.

Credits

Various bits of code, scripts, and procedures were put together with information from John Simpson's qmail.jms1.net website. It's an excellent resource on managing and setting up a Qmail server.

Recent Updates

  • 2 years 3 months ago
  • 2 years 3 months ago
  • 2 years 3 months ago
    php 8.x
  • 2 years 3 months ago
    10.6.7
  • 2 years 3 months ago
    Drop Centos 5/6 stuff