3 ms·
One nice daemontools-encore feature not mentioned here: support for multiprocess services. By default, services run in their own process group, and `svc -t` and
by sigil 11y ago
One nice daemontools-encore feature not mentioned here: support for multiprocess services. By default, services run in their own process group, and `svc -t` and friends will cleanly signal the entire process group. Classic daemontools and all the derivatives I'm aware of will spin off orphans when you send TERM to a multiprocess service (eg, anything that involves a shell pipeline) like
#!/bin/sh
while true; do
tar czf - data | ssh backup tar xzf -
sleep 60
done
If you've ever admin'ed a multiprocess service, you know how annoying the orphan problem can be.
> Attempts to package this for Debian Linux have not got off the ground...
I've got a PPA for daemontools-encore here [1], if you're interested. Be aware that the package itself is named daemontools so that it functions as a drop-in replacement for classic daemontools, and plays nicely with the daemontools-run package.
> and it is not in the BSD ports/packages trees...
This info is out of date, daemontools-encore 1.10 is in the FreeBSD ports tree [2].
[1] https://launchpad.net/~alangrow/+archive/ubuntu/daemontools-encore https://launchpad.net/~alangrow/+archive/ubuntu/daemontools-...
[2] http://www.freshports.org/sysutils/daemontools-encore/ http://www.freshports.org/sysutils/daemontools-encore/
- rbirnie 11y agoMultiprocess support works in general pretty well but isn't perfect. Daemontools-encore still has issues with KILL signals, with HTTPD and MPMs a KILL signal will kill the master but workers often go to init and never stop.
- sigil 11y agoWhat HTTPD are you running? If you're running one that does its own child process management (like nginx or apache), you should explicitly disable process group isolation via a ./no-setsid file. http://untroubled.org/daemontools-encore/supervise.8.html http://untroubled.org/daemontools-encore/supervise.8.html