Copyright 2003-2009 Lennart Poettering <mzqnrzba (at) 0pointer (dot) de>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
Version 0.14 released; changes include: add daemon_set_verbosity() call; numerous updates
Version 0.13 released; changes include: add daemon_reset_sigs() and daemon_unblock_sigs() calls for resetting signal handlers to sensible states; improve error handling.
Version 0.12 released; changes include: make daemon_close_all() actually work properly.
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
Version 0.10 released; changes include: make logging compatible with daemons running in a chroot() environment
Version 0.9 released; changes include: portability (FreeBSD, NetBSD, OpenBSD, Darwin, Solaris, Cygwin); some minor header file cleanups; fix access mode of PID files; other cleanups; license change from GPL to LGPL
Version 0.8 released; changes include: proper PID file locking
Version 0.7 released; changes include: minor cleanups; C++ compatibility; gcc 2.95 compatiblity
Version 0.6 released; changes include: backgrounding fixes, minor other stuff
Version 0.5 released; changes include: signal handling fix, forking fix
Version 0.4 released; changes include: new module dexec.c; added pkg-config support.
Version 0.3 released; changes include: documentation update, build fixes, RPM spec file added, added new function int daemon_pid_file_kill_wait().
Version 0.2 released; changes include: ugly umask error fix, documentation update
Version 0.1 released
libdaemon is a lightweight C library that eases the writing of UNIX daemons. It consists of the following parts:
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.
libdaemon is currently used by ifplugd, Avahi, ivam2, Nautilus-Share and aeswepd.
Version 0.14 is feature complete.
An extensive API reference is available
libdaemon was developed and tested on Debian GNU/Linux "testing" from July 2003, it should work on most other Linux distributions (and some Unix versions) since it uses GNU Autoconf and GNU libtool for source code configuration and shared library management.
libdaemon is known to work on modern Linux systems, FreeBSD, NetBSD, OpenBSD, Darwin, Solaris and Windows/Cygwin.
As this package is made with the GNU autotools you should run ./configure inside the distribution directory for configuring the source tree. After that you should run make for compilation and make install (as root) for installation of libdaemon.
Please use gmake instead of traditional make for compilation on non-Linux systems.
Sebastien Estienne, for a lot of portability work.
The newest release is always available from http://0pointer.de/lennart/projects/libdaemon/
Get libdaemon's development sources from the GIT repository (gitweb):
git clone git://git.0pointer.de/libdaemon
You may find an up to date Debian package of libdaemon on the Debian package repository.
If you want to be notified whenever I release a new version of this software use the subscription feature of Freshmeat.