(PHP 5 >= 5.3.0, PHP 7, PHP 8)
pcntl_sigwaitinfo — Waits for signals
The pcntl_sigwaitinfo() function suspends execution of the calling script until one of the signals given in signals are delivered. If one of the signal is already pending (e.g. blocked by pcntl_sigprocmask()), pcntl_sigwaitinfo() will return immediately.
signalsArray of signals to wait for.
infoThe info parameter is set to an array containing information about the signal.
The following elements are set for all signals:
The following elements may be set for the SIGCHLD signal:
The following elements may be set for the SIGILL, SIGFPE, SIGSEGV and SIGBUS signals:
The following element may be set for the SIGPOLL signal:
Returns a signal number on success, or false on failure.
| Version | Description |
|---|---|
| 8.4.0 | A ValueError is thrown if signal is empty. |
| 8.4.0 | A TypeError is thrown if signal value is not an int. |
| 8.4.0 | A ValueError is thrown if signal value is invalid. |
Example #1 pcntl_sigwaitinfo() example
<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);
echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>