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.