Proc::Daemon
Daemon(3) User Contributed Perl Documentation Daemon(3)
NAME
Proc::Daemon - Run Perl program as a daemon process
SYNOPSIS
use Proc::Daemon;
Proc::Daemon::Init;
DESCRIPTION
This module contains the routine Init which can be called by a Perl
program to initialize itself as a daemon. A daemon is a process that
runs in the background with no controlling terminal. Generally
servers (like FTP and HTTP servers) run as daemon processes. Note, do
not make the mistake that a daemon == server.
The Proc::Daemon::Init function does the following:
1 Forks a child and exits the parent process.
2 Becomes a session leader (which detaches the program from the con-
trolling terminal).
3 Forks another child process and exits first child. This prevents
the potential of acquiring a controlling terminal.
4 Changes the current working directory to "/".
5 Clears the file creation mask.
6 Closes all open file descriptors.
You will notice that no logging facility, or other functionality is
performed. Proc::Daemon::Init just performs the main steps to ini-
tialize a program as daemon. Since other funtionality can vary
depending on the nature of the program, Proc::Daemon leaves the imple-
mentation of other desired functionality to the caller, or other mod-
ule/library (like Sys::Syslog).
There is no meaningful return value Proc::Daemon::Init. If an error
occurs in Init so it cannot perform the above steps, than it croaks
with an error message. One can prevent program termination by using
eval.
OTHER FUNCTIONS
Proc::Daemon also defines some other functions. These functions can
be imported into the callers name space if the function names are
specified during the use declaration:
Fork
Fork is like the built-in fork, but will try to fork if at all possi-
ble, retrying if necessary. If not possible, Fork will croak.
OpenMax
OpenMax returns the maximum file descriptor number. If undetermined,
64 will be returned.
NOTES
· Proc::Daemon::init is still available for backwards capatibilty.
However, it will not perform the double fork, and will return the
session ID.
AUTHOR
Earl Hood, earl@earlhood.com
http://www.earlhood.com/
CREDITS
Implementation of Proc::Daemon derived from the following sources:
· Advanced Programming in the UNIX Environment, by W. Richard
Stevens. Addison-Wesley, Copyright 1992.
· UNIX Network Progamming, Vol 1, by W. Richard Stevens. Prentice-
Hall PTR, Copyright 1998.
DEPENDENCIES
Carp, POSIX.
SEE ALSO
POSIX, Sys::Syslog
perl v5.8.8 2003-06-19 Daemon(3)