daemontoolsはプログラムの起動監視、ロギングなどのツールをまとめたパッケージです。 qmailのD.J.Bernstein氏作。 つかってみよう。
via
$ sudo mkdir -p /package
$ sudo chmod 1755 /package
$ cd /package
$ sudo curl -O http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
$ sudo tar xzvfp daemontools-0.76.tar.gz
$ cd admin/daemontools-0.76
#### パッチを施す ####
$ diff src/error.h src/error.h.org
6c6
< extern int errno;
---
> #include <errno.h>
$ sudo ./package/install
...
Copying commands into ./command...
Creating symlink daemontools -> daemontools-0.76...
Making command links in /command...
Making compatibility links in /usr/local/bin...
Creating /service...
Adding svscanboot to inittab...
init should start svscan now.
$ ls -l /usr/local/bin
envdir -> /command/envdir
envuidgid -> /command/envuidgid
fghack -> /command/fghack
multilog -> /command/multilog
pgrphack -> /command/pgrphack
readproctitle -> /command/setlock -> /command/setlock
setuidgid -> /command/setuidgid
softlimit -> /command/softlimit
supervise -> /command/supervise
svc -> /command/svc
svok -> /command/svok
svscan -> /command/svscan
svscanboot -> /command/svstat -> /command/svstat
tai64n -> /command/tai64n
tai64nlocal -> /command/tai64nlocal
$ ls -l /command
envdir -> /package/admin/daemontools/command/envdir
envuidgid -> /package/admin/daemontools/command/envuidgid
fghack -> /package/admin/daemontools/command/fghack
multilog -> /package/admin/daemontools/command/multilog
pgrphack -> /package/admin/daemontools/command/pgrphack
readproctitle -> /package/admin/daemontools/command/readproctitle
setlock -> /package/admin/daemontools/command/setlock
setuidgid -> /package/admin/daemontools/command/setuidgid
softlimit -> /package/admin/daemontools/command/softlimit
supervise -> /package/admin/daemontools/command/supervise
svc -> /package/admin/daemontools/command/svc
svok -> /package/admin/daemontools/command/svok
svscan -> /package/admin/daemontools/command/svscan
svscanboot -> /package/admin/daemontools/command/svscanboot
svstat -> /package/admin/daemontools/command/svstat
tai64n -> /package/admin/daemontools/command/tai64n
tai64nlocal -> /package/admin/daemontools/command/tai64nlocal
$ ls /package/admin/daemontools-0.76/command
envdir fghack pgrphack setlock softlimit svc svscan svstat tai64nlocal
envuidgid multilog readproctitle setuidgid supervise svok svscanboot tai64n
Install後に自動で起動する。
$ ps ax
...
/bin/sh /command/svscanboot
svscan /service
readproctitle service errors: ........
/etc/rc.local
/command/svscanboot &
$ cd /service
$ sudo mkdir cherokee
$ cd cherokee
$ sudo vi run_
$ cat run_
#!/bin/env sh
exec /usr/sbin/cherokee
$ sudo chmod 755 run_
$ sudo mv run_ run
via http://www.emaillab.org/djb/daemontools/daemontools-howto.html#chap3
$ sudo svc -u /service/cherokee
$ sudo svc -d /service/cherokee
