Почему регистрация функции-обработчика для SIGHUP не позволяет щелкнуть «X», чтобы закрыть окно XTerm при ожидании вводаPhp

Кемеровские программисты php общаются здесь
Anonymous
Почему регистрация функции-обработчика для SIGHUP не позволяет щелкнуть «X», чтобы закрыть окно XTerm при ожидании ввода

Сообщение Anonymous »

Линукс 6.1. PHP 8.2.7. KDE Плазма 5.x. X11.
У меня давно возникла очень неприятная проблема с моими сценариями PHP CLI, которая постоянно возникала и вызывала проблемы. Теперь я наконец-то создал минимальный тестовый пример и надеюсь, что эту проблему можно решить раз и навсегда.
Если вы сделаете эти три вещи:
  • Зарегистрируйте функцию-обработчик для сигнала SIGHUP (который остается пустым/ничего не делает)...
  • Проверьте ввод данных от пользователя (

    Код: Выделить всё

    fgets(STDIN);
    )...
  • Запустите сценарий PHP CLI, например xterm -e php test.php (именно так я должен его называть по сложным причинам, не связанным с к этой проблеме)...
... тогда появившееся окно эмулятора терминала XTerm невозможно будет закрыть, нажав кнопку "X " в правом верхнем углу! Если вы нажмете на него, ничего не произойдет.
Как только вы прокомментируете или удалите строку, в которой регистрируется обработчик сигнала, вы сможете закрыть окно при запуске, как указано выше.
Тестовый пример
  • Код: Выделить всё

    xterm -e php 1.php
    = «X» НЕ МОЖЕТ нажать, чтобы закрыть окно XTerm.
  • Код: Выделить всё

    xterm -e php 2.php
    = «X» МОЖНО нажать, чтобы закрыть окно XTerm.

Код: Выделить всё

1.php:


Подробнее здесь: [url]https://stackoverflow.com/questions/78245899/why-does-registering-a-handler-function-for-sighup-prevent-clicking-the-x-to-c[/url]

Вернуться в «Php»