----------
Tue Jul 10 2007:
[10]Version 0.12 released; changes include: make daemon_close_all()
actually work properly.
Fri Jun 22 2007:
[11]Version 0.11 released; changes include: automatically detect
whether lynx is installed; properly set errno on every error condition;
add new function daemon_close_all() to close all open file descriptors
except a given set; add daemon_logv(), which is identical to
daemon_log(), but takes a va_list argument; add daemon_execv() in
similar style; other fixes
----------
daemons. It consists of the following parts:
* A wrapper around fork() which does the correct daemonization
procedure of a process
* A wrapper around syslog() for simpler and compatible log output to
Syslog or STDERR
* An API for writing PID files
* An API for serializing UNIX signals into a pipe for usage with
select() or poll()
* An API for running subprocesses with STDOUT and STDERR redirected
to syslog.
APIs like these are used in most daemon software available. It is not
that simple to get it done right and code duplication is not a goal.