Provided by: duende_2.0.09-2_amd64 bug

NAME

       duende - run a child process as a daemon

DESCRIPTION

       duende makes a given child process a daemon. The standard output and standard error of the
       child process is logged via syslog() with a priority of LOG_ALERT.

USAGE

       duende [options] child_process [ arguments passed onto child ]

DETAILS

       When duende is invoked, it spawns two processes. In addition to spawning the daemonized
       child process, duende also spawns a process which reads and logs the standard output of
       the daemonized process. The parent process stays alive so as to monitor the daemonized
       process.

       duende requires a blank directory named /etc/maradns/logger to run.

       Should the parent duende process a HUP signal, duende will restart the child process.
       Should the daemonized or logging process received an untrapped HUP signal or exit with an
       exit code of 8, duende will restart the process. Should the daemonized or logging process
       exit for any other reason, duende will send the logger process a TERM signal and exit.
       Should the duende parent process receive a TERM or INT signal, duende sends all of its
       children TERM signals, then exits.

       The duende process must be started as the superuser; this is because Duende's intended
       child processes (maradns and zoneserver) need to bind to privileged ports, and because
       duende uses a setuid() call to change the user ID of the logging process to the user with
       ID 66.

OPTIONS

       Most of the above behaviour can be configured by command line arguments.

       -c|--chroot directory
           The log helper process will change its directory and root to this location.  This
           defaults to /etc/maradns/logger .

       -i|--ident string
           The log helper process will use this string to identify the process when sending
           messages to syslog.  This defaults to log-help .

       -p|--pid filename
           If this argument is present, the duende parent process will store its pid in this
           file.

       -u|--uid integer
           The log helper process will drop its user id to this. This value defaults to 66.

       -g|--gid integer
           The log helper process will drop its group id to this. This value defaults to 66.

       -r|--restart_on integer
           The log helper process will restart the child process if it exists with this status
           code. This defaults to 8.

LOGGING

       duende uses the syslog() facility to log the standard output of the program that it
       invokes. The name of the program (in other words, the "ident" given to openlog()) defaults
       to log-helper but can be overridden with the --ident argument.  All messages created by
       the child process are sent to syslog() with a priority of LOG_ALERT and a "facility" of
       LOG_DAEMON (daemon.info in /etc/syslog.conf).  Should duende itself encounter an error, it
       will send messages to syslog() with a priority of LOG_ALERT.

       Also, the directory /etc/maradns/logger, while used by duende, is not used to store any
       log messages. That is unless, for some reason, one configures syslog to store messages
       there.

EXAMPLES

       Using duende to start maradns, where the mararc file is /etc/mararc.2

       duende maradns -f /etc/mararc.2

       Using duende to start zoneserver, where the mararc file is /etc/mararc.4

       duende zoneserver -f /etc/mararc.4

BUGS

       Duende assumes that all of its children are well-behaved, eating their vegetables, going
       to bed when told, and terminating when receiving a TERM signal.

SEE ALSO

       maradns(8), syslog(3)

       http://www.maradns.org

LEGAL DISCLAIMER

       THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
       INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
       PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
       FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
       (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
       DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
       IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
       DAMAGE.

AUTHOR

       Duende and this man page are written by Sam Trenholme. D Richard Felker III provided some
       invaluable assistance with the piping code which duende uses.