Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DUENDE(8)			    duende			     DUENDE(8)

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_INFO.

USAGE
       duende child_process [ all subsequent arguments passed on to 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 /usr/local/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.

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()) is the full path of the first argument
       given to	duende.	 All messages created by the child process are sent to
       syslog()	with a priority	of LOG_INFO and	a "facility" of	LOG_DAEMON
       (daemon.info in /etc/syslog.conf); since	daemon.info messages are not
       logged by default in FreeBSD, on	FreeBSD	systems	messages generated by
       the child process are logged with a priority of LOG_ALERT and a
       "facility" of LOG_DAEMON	(daemon.alert in /etc/syslog.conf).  Should
       duende itself encounter an error, it will send messages to syslog()
       with a priority of LOG_ALERT.

       For example, suppose one	invokes	duende thusly:

	    duende /usr/local/sbin/maradns

       If invoked thusly, duende will log all messages with the	"ident"
       (program	name) of "/usr/local/sbin/maradns". If this is not desired,
       invoke duende with something like:

	    export PATH=$PATH:/usr/local/sbin
	    duende maradns

       This will log messages with a (more sensible) "ident" of	maradns.

       Note: If	a non-POSIX Bourne shell (such as csh, es, rc, or fish)	is
       used to invoke MaraDNS, the above syntax	needs to be changed.

       Also, the directory /usr/local/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
       /usr/local/etc/maradns.2

	    duende maradns -f /usr/local/etc/maradns.2

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

	    duende zoneserver -f /usr/local/etc/maradns.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.

January	2003			    duende			     DUENDE(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=duende&sektion=8&manpath=FreeBSD+Ports+14.3.quarterly>

home | help