Software

Installation hint for daemontools on IRIX


Probably the most common use for daemontools is to start a local dns resolver and cache. IRIX uses nsd to handle all nameservice queries and will forward them to the resolver on 127.1. So it is important to have dnscache started at the right time during system startup.

Make sure there is no BIND named running. eoe.sw.named should not be installed. named should be chkconfig'd off if it is.

I found the ideal start up time for daemontools is right before the $ECHO "Network daemons:\c" line in /etc/init.d/network. Use the following shell syntax:

    # start up daemontools
    if test -x /command/svscan; then
        if [ ! -d /service ] ; then
            mkdir -m 0755 /service
        fi
        /command/svc -dx /service/* /service/*/log 2>/dev/null

env - PATH=/command:/usr/local/bin:/bin:/sbin:/usr/sbin /bin/csh -cf "svscan /service |& \
readproctitle service errors: ................................................................................................................................................................................................................................................................................................................................................................................................................ &" > /dev/null

    fi

I've created a patch that can be used to quickly modify /etc/init.d/network to start daemontools. Apply it with

patch -u /etc/init.d/network daemontools.patch

If dnscache is started too late or if it is started from inittab you will run into problems. One problem I had when starting from inittab was autofsd not being able to resolve the name of a server and causing a delay mounting NFS directories.

Include this right after starting daemontools to insure that dnscache gets started on a new system.

    # dnscache
    if [ ! -d /service/dnscache ] ; then
        /usr/local/bin/dnscache-conf Gdnscache Gdnslog /etc/dnscache
	ln -s /etc/dnscache /service
    fi

To properly shutdown your services and and stop daemontools, use this right after all the kill all of the daemons in /etc/init.d/ntp.

    # shutdown daemontools
    if [ -d /service ] ; then
        /sbin/killall svscan
        /command/svc -dx /service/* /service/*/log
    fi

Other resources

startsvan