Next: Inetd Operation Mode, Up: The dicod
daemon. [Contents][Index]
The ‘daemon’ mode is enabled by mode daemon
statement in
the configuration file (see mode statement). It is also the
default mode. In daemon mode dicod
listens for incoming
requests on one or several network interfaces. Unless the
--foreground
option is specified, it detaches itself from the
controlling terminal and switches to background (becomes a
daemon). When an incoming connection arrives, it forks a
subprocess for handling it.
In this mode the following signals cause dicod
to
terminate: ‘SIGTERM’, ‘SIGQUIT’, and ‘SIGINT’. The
‘SIGHUP’ signal causes the program to restart. This works only
if both the program name and its configuration file name (if given
using --config option) are absolute file names.
Upon receiving ‘SIGHUP’, dicod
first verifies if the
configuration file does not contain fatal errors. To do that, the
program executes a copy of itself with the --lint option
(see --lint) and analyzes its return code. Only if this check
passes, dicod
restarts itself. This ensures that the daemon
will not terminate due to unnoticed errors in its configuration file.
Upon receiving ‘SIGTERM’, ‘SIGQUIT’, or ‘SIGINT’, the
program stops accepting incoming requests and sends the ‘SIGTERM’
signal to all active subprocesses. Then it waits a predefined amount
of time for all processes to terminate (see shutdown-timeout).
Any subprocesses that do not terminate after this time are sent the
‘SIGKILL’ signal. Then, the database modules are unloaded and
dicod
terminates.
Several command line options are provided that modify the behavior
of dicod
in this mode. These options are mainly designed
for debugging and error-hunting purposes.
The --foreground option instructs the server to remain
attached to the controlling terminal and stay in the foreground. It
is often used with --stderr option, which instructs
dicod
to output all diagnostic to the standard error output,
instead of syslog which is used by default.
Next: Inetd Operation Mode, Up: The dicod
daemon. [Contents][Index]