сигналы — восстановить TTY при нажатии Ctrl + C в PHP-скрипте

При нажатии Ctrl+С чтобы завершить скрипт PHP, я должен восстановить TTY перед возвращением в оболочку, в противном случае настройки TTY из скрипта остаются в терминале, что делает его непригодным для использования.

В настоящее время я должен нажать Ctrl+С с последующим Войти чтобы обработчик сигнала включился. Как я могу изменить скрипт, чтобы восстановить TTY и выйти из скрипта, просто нажав Ctrl+С в одиночестве?

<?php

function sig_handler($signo) {
exec("stty icanon echo");
exit("BYE\n");
}

declare(ticks=1);
pcntl_signal(SIGINT,  "sig_handler");
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
exec("stty -icanon -echo");

while(TRUE)
echo fread(STDIN, 10);

?>

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]