Query: pcntl_signal
OS: php
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
PCNTL_SIGNAL(3) 1 PCNTL_SIGNAL(3) pcntl_signal - Installs a signal handlerSYNOPSISbool pcntl_signal (int $signo, callable|int $handler, [bool $restart_syscalls = true])DESCRIPTIONThe pcntl_signal(3) function installs a new signal handler or replaces the current signal handler for the signal indicated by $signo.PARAMETERSo $signo - The signal number. o $handler - The signal handler. This may be either a callable, which will be invoked to handle the signal, or either of the two global con- stants SIG_IGN or SIG_DFL, which will ignore the signal or restore the default signal handler respectively. If a callable is given, it must implement the following signature: void handler (int $signo) o $signo - The signal being handled. Note Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends. o $restart_syscalls - Specifies whether system call restarting should be used when this signal arrives.RETURN VALUESReturns TRUE on success or FALSE on failure.CHANGELOG+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 4.3.0 | | | | | | | As of PHP 4.3.0 PCNTL uses ticks as the signal | | | handle callback mechanism, which is much faster | | | than the previous mechanism. This change follows | | | the same semantics as using "user ticks". You | | | must use the declare() statement to specify the | | | locations in your program where callbacks are | | | allowed to occur for the signal handler to func- | | | tion properly (as used in the example below). | | | | +--------+---------------------------------------------------+EXAMPLESExample #1 pcntl_signal(3) example <?php // tick use required as of PHP 4.3.0 declare(ticks = 1); // signal handler function function sig_handler($signo) { switch ($signo) { case SIGTERM: // handle shutdown tasks exit; break; case SIGHUP: // handle restart tasks break; case SIGUSR1: echo "Caught SIGUSR1... "; break; default: // handle all other signals } } echo "Installing signal handler... "; // setup signal handlers pcntl_signal(SIGTERM, "sig_handler"); pcntl_signal(SIGHUP, "sig_handler"); pcntl_signal(SIGUSR1, "sig_handler"); // or use an object, available as of PHP 4.3.0 // pcntl_signal(SIGUSR1, array($obj, "do_something")); echo"Generating signal SIGUSR1 to self... "; // send SIGUSR1 to current process id // posix_* functions require the posix extension posix_kill(posix_getpid(), SIGUSR1); echo "Done "; ?>NOTESpcntl_signal(3) doesn't stack the signal handlers, but replaces them.SEE ALSOpcntl_fork(3), pcntl_waitpid(3). PHP Documentation Group PCNTL_SIGNAL(3)
Related Man Pages |
---|
bsd_signal(3) - debian |
signal(3tcl) - debian |
sighold(3c) - hpux |
sigqueue(3) - osf1 |
set_exception_handler(3) - php |
Similar Topics in the Unix Linux Community |
---|
signal handler problems |
Help in using SIGUSR1 and SIGUSR2 |
need more user signal |
Serial port signal(IRQ) handler (using C) |
Nanosleep in signal call |