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

FreeBSD Manual Pages

  
 
  

home | help
Net::Server::DaemonizeUser Contributed Perl DocumentaNet::Server::Daemonize(3)

NAME
       Net::Server::Daemonize -	Safe fork and daemonization utilities

SYNOPSIS
	   use Net::Server::Daemonize qw(daemonize);

	   daemonize(
	     'nobody',		       # User
	     'nobody',		       # Group
	     '/var/state/mydaemon.pid' # Path to PID file - optional
	   );

DESCRIPTION
       This module is intended to let you simply and safely daemonize your
       server on systems supporting the	POSIX module. This means that your
       Perl script runs	in the background, and it's process ID is stored in a
       file so you can easily stop it later.

EXPORTED FUNCTIONS
       daemonize
	   Main	routine.  Arguments are	user (or userid), group	(or group id
	   or space delimited list of groups), and pid_file (path to file).
	   This	routine	will check on the pid file, safely fork, create	the
	   pid file (storing the pid in	the file), become another user and
	   group, close	STDIN, STDOUT and STDERR, separate from	the process
	   group (become session leader), and install $SIG{INT}	to remove the
	   pid file.  In otherwords - daemonize.  All errors result in a die.
	   As of version 0.89 the pid_file is optional.

       safe_fork
	   Block SIGINT	during fork.  No arguments.  Returns pid of forked
	   child.  All errors result in	a die.

       set_user
	   Become another user and group.  Arguments are user (or userid) and
	   group (or group id or space delimited list of groups).

       set_uid
	   Become another user.	 Argument is user (or userid).	All errors
	   die.

       set_gid
	   Become another group.  Arguments are	groups (or group ids or	space
	   delimited list of groups or group ids).  All	errors die.

       get_uid
	   Find	the uid.  Argument is user (userid returns userid).  Returns
	   userid.  All	errors die.

       get_gid
	   Find	the gids.  Arguments are groups	or space delimited list	of
	   groups.  All	errors die.

       is_root_user
	   Determine if	the process is running as root.	 Returns 1 or undef.

       check_pid_file
	   Arguments are pid_file (full	path to	pid_file).  Checks for
	   existance of	pid_file.  If file exists, open	it and determine if
	   the process that created it is still	running.  This is done first
	   by checking for a /proc file	system and second using	a "ps" command
	   (BSD	syntax).  (If neither of these options exist it	assumed	that
	   the process has ended) If the process is still running, it aborts.
	   Otherwise, returns true.  All errors	die.

       create_pid_file.
	   Arguments are pid_file (full	path to	pid_file).  Calls
	   check_pid_file.  If it is successful	(no pid_file exists), creates
	   a pid file and stores $$ in the file.

       unlink_pid_file
	   Does	just that.

SEE ALSO
       Net::Server.  Net::Daemon, The Perl Cookbook Recipe 17.15.

AUTHORS
       Jeremy Howard <j+daemonize@howard.fm>

       Program flow, concepts and initial work.

       Paul Seamons <paul@seamons.com>

       Code rework and componentization.  Ongoing maintainer.

LICENSE
	 This package may be distributed under the terms of either the
	 GNU General Public License
	   or the
	 Perl Artistic License

	 All rights reserved.

perl v5.32.0			  2017-08-10	     Net::Server::Daemonize(3)

NAME | SYNOPSIS | DESCRIPTION | EXPORTED FUNCTIONS | SEE ALSO | AUTHORS | LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Net::Server::Daemonize&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help