sapi_windows_generate_ctrl_event
(PHP 7 >= 7.4.0, PHP 8)
sapi_windows_generate_ctrl_event — Envia um evento CTRL a outro processo
Descrição
Envia um evento CTRL a outro processo no mesmo grupo de processos.
Parâmetros
event
-
O evento
CTRL
a enviar; pode serPHP_WINDOWS_EVENT_CTRL_C
ouPHP_WINDOWS_EVENT_CTRL_BREAK
. pid
-
O ID do processo ao qual deve-se enviar o evento. Se
0
for informado, o evento é enviado a todos os processos do mesmo grupo.
Exemplos
Example #1 Uso Básico de sapi_windows_generate_ctrl_event()
Este exemplo mostra como passar eventos CTRL+BREAK
para um processo
filho. Neste caso, o processo filho mostra Ainda estou vivo
a cada segundo, até que o usuário pressione CTRL+BREAK
, o que faz com
que apenas o processo filho seja terminado.
<?php
// envia eventos CTRL+BREAK para o processo filho
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');
// cria um processo filho que mostra uma mensagem a cada segundo
$cmd = ['php', '-r', 'while (true) { echo "Ainda estou vivo\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]);
}
?>
Veja Também
- proc_open() - Executa um comando e abre ponteiros de arquivo para entrada/saída
- sapi_windows_set_ctrl_handler() - Define ou remove um manipulador de evento CTRL