sapi_windows_generate_ctrl_event

(PHP 7 >= 7.4.0)

sapi_windows_generate_ctrl_eventПослать событие CTRL другому процессу

Описание

sapi_windows_generate_ctrl_event ( int $event , int $pid = 0 ) : bool

Послать событие CTRL другому процессу в той же группе процессов.

Список параметров

event

Событие CTRL; PHP_WINDOWS_EVENT_CTRL_C или PHP_WINDOWS_EVENT_CTRL_BREAK.

pid

Идентификатор процесса, которому необходимо послать событие. Если задано как 0, то событие будет послано всем процессам в группе.

Возвращаемые значения

Возвращает true в случае успешного завершения или false в случае возникновения ошибки.

Примеры

Пример #1 Использование sapi_windows_generate_ctrl_event()

В этом примере показано, как послать события CTRL+BREAK дочернему процессу. В данном случае дочерний процесс будет печатать Я всё ещё жив! раз в секунду, пока пользователь не нажмет CTRL+BREAK. После этого дочерний процесс завершится.

<?php
// Пересылка событий CTRL+BREAK дочернему процессу
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');

// Создаем дочерний процесс
$cmd = ['php''-r''while (true) { echo "Я всё ещё жив!\n"; sleep(1); }'];
$descspec = array(['pipe''r'], ['pipe''w'], ['pipe''w']);
$options = ['create_process_group' => true];
$proc proc_open($cmd$descspec$pipesnullnull$options);
while (
true) {
    echo 
fgets($pipes[1]);
}
?>

Смотрите также

  • proc_open() - Выполнить команду и открыть указатель на файл для ввода/вывода
  • sapi_windows_set_ctrl_handler() - Установить или удалить обработчик события CTRL