sapi_windows_generate_ctrl_event
(PHP 7 >= 7.4.0)
sapi_windows_generate_ctrl_event — Send a CTRL event to another process
Description
sapi_windows_generate_ctrl_event ( int $event [, int $pid = 0 ] ) : bool
Sends a CTRL event to another process in the same process group.
Parameters
-
event -
The
CTRLeven to send; eitherPHP_WINDOWS_EVENT_CTRL_CorPHP_WINDOWS_EVENT_CTRL_BREAK. -
pid -
The 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
Returns true on success or false on failure.
Examples
Example #1 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]);
}
?> See Also
- proc_open() - Execute a command and open file pointers for input/output
- sapi_windows_set_ctrl_handler() - Set or remove a CTRL event handler
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/function.sapi-windows-generate-ctrl-event.php