Provided by: sympa_6.2.24~dfsg-1_amd64
NAME
Sympa::Process - Process of Sympa
SYNOPSIS
use Sympa::Process; my $process = Sympa::Process->instance; $process->init(pidname => 'sympa'); $process->daemonize; $process->fork;
DESCRIPTION
Sympa::Process implements the class to handle process itself of Sympa software. Signal handling Once Sympa::Process is loaded, "SIGCHLD" signals are captured, and only defunct child processes invoked by fork() method are reaped. Methods instance ( ) Constructor. Creates a singleton instance of Sympa::Process object. Returns: A new Sympa::Process instance, or undef for failure. init ( key => value, ... ) Instance method. TBD. daemonize ( ) Instance method. Daemonizes process itself. Process is given new process group, detached from TTY and given new process ID. Parameters: None. Returns: None. fork ( [ $tag ] ) Instance method. Forks process. Note that this method should be used instead of fork() in Perl core. Parameter: $tag A string to determine new child process. By default the name of calling process. Returns: See "fork" in perlfunc. reap_child ( [ blocking => 1 ] ) DEPRECATED. wait_child ( ) Instance method. Waits for any child process. Parameters: None. Returns: 0. Returns "-1" on failure. sync_child ( [ hash => \%hash ], [ file => 1 ] ) Updates process information in external data. Parameters: hash => \%hash Syncs PIDs in local map %hash file => 1 Syncs child PIDs in PID file. If dead PID is found, notification will be sent to super-listmaster. Returns: None. remove_pid ([ pid => $pid ], [ final => 1 ] ) Instance method. Removes process ID from PID file. Then if the file is empty, it will be removed. write_pid ( [ initial => 1 ], [ pid => $pid ] ) Instance method. Writes or adds process ID to PID file. Parameters: initial => 1 Initializes PID file. If the file remains, notification will be sent to super- listmaster. pid => $pid Process ID to be written. By default PID of current process. direct_stderr_to_file ( ) Instance method. TBD. Attributes Sympa::Process instance may have following attributes: {children} Hashref with child PIDs forked by fork() method as keys. {detached} True value is set if daemonize() method was called and the process has been detached from TTY. {generation} Generation of process. If fork() method succeeds, it will be increased by child process. Utility functions eval_in_time ( $subref, $timeout ) Evaluate subroutine $subref in $timeout seconds. TBD. register_handler ( ) Registers "SIGCHLD" handler. This function is usually called automatically during initialization.
HISTORY
Sympa::Tools::Daemon appeared on Sympa 6.2a.41. Renamed Sympa::Process appeared on Sympa 6.2.12 and began to provide OO interface. Sympa 6.2.13 introduced daemonize() method and {detached} attribute. As of Sympa 6.2.14, "SIGCHLD" signal was captured and child processes were reaped immediately. reap_child() method (formerly reaper()) was deprecated.