sapi_windows_generate_ctrl_event
(PHP 7 >= 7.4.0, PHP 8)
Send a CTRL event to another process
Description
Sends a CTRL event to another process in the same process group.
Parameters
eventThe
CTRLevent to send; eitherPHP_WINDOWS_EVENT_CTRL_CorPHP_WINDOWS_EVENT_CTRL_BREAK.pidThe ID of the process to which to send the event to. If
0is given, the event is sent to all processes of the process group.
Return Values
Success
Examples
Basic sapi_windows_generate_ctrl_event() Usage
This example shows how to pass along CTRL+BREAK events to a child process. In this case the child process echoes I'm still alive every second, until the user presses CTRL+BREAK, what causes only the child process to be terminated.
<?php
// forward CTRL+BREAK events to the child process
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');
// create a child process which echoes every second
$cmd = ['php', '-r', 'while (true) { echo "I\'m still alive\n"; sleep(1); }'];
$descspec = array(['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']);
$options = ['create_process_group' => true];
$proc = proc_open($cmd, $descspec, $pipes, null, null, $options);
while (true) {
echo fgets($pipes[1]);
}
?>