Command explanations
The first thing to understand in installing any package written
by Daniel J. Bernstein, and
this includes qmail, djbdns
and ucspi-tcp in addition to
daemontools, is that he is willing to completely
disregard standards if his idea of the correct thing to do differs from an
particular standard. Professor Bernstein is a standards body unto himself when
it comes to his own software.
It is therefore necessary to make quite a few changes to the
installation commands for his packages to get them to install in a manner
that is compliant with the Filesystem Hierarchy Standard
(FHS). Most of the following commands are due to this
difficulty.
cd admin/daemontools-0.76: First off, the package is
unpacked in an admin directory. You will find the actual
packages two directory levels below this.
package/compile: This command actually
compiles the source and prepares the binaries.
Since we are installing the binaries in /usr/sbin
rather than creating a non-standard /command directory,
several paths have to be changed:
sed 's|command|usr/sbin|' boot.inittab > boot.inittab~
mv boot.inittab~ boot.inittab
In boot.inittab,
/command/svscanboot is changed to
/usr/sbin/svscanboot.
sed -e 's|/command:/usr/local/bin:/usr/local/sbin:||' \
-e 's|command|usr/sbin|' \
-e 's|/service|/etc/service|g' svscanboot > svscanboot~ &&
Here various paths are adjusted in the svscanboot
script. In our setup svscan will check the
/etc/service directory instead of
the /service directory for daemons to run.
cp * /usr/sbin: We must manually copy the
binaries to the /usr/sbin directory.
cat /etc/inittab boot.inittab > /etc/inittab~
mv -f /etc/inittab~ /etc/inittab
These commands append a line to /etc/inittab so that
init will launch the svscanboot script.
mkdir /etc/service: This command creates
the daemontools control directory, which - even if
empty - needs to exist for
daemontools to run properly.
telinit Q: This command tells the init
process to re-read its configuration file
(inittab) and act upon any changes that have been made.
The svscanboot script is started.