Если вы используете числовые значения (а не встроенные константы PHP), то, похоже, это работает, по крайней мере для меня, в системе Debian / Ubuntu.
Как ни странно, в моем примере ниже функция обратного вызова signal_handler () не вызывается. Вместо этого он просто отображает «^ Z» и «^ C» в строке ввода, в то время как сигналы просто игнорируются. В конце концов, перерыв / приостановка невозможны, что, мы надеемся, ответит на оригинальный вопрос:
#!/usr/bin/php
<?
pcntl_signal( 2, "signal_handler");
pcntl_signal( 20, "signal_handler");
function signal_handler( $signal )
{
echo( "This is not even invoked..?\n" );
}
$end = FALSE;
while( $end == FALSE )
{
echo( "Enter Q to quit: " );
$fp = fopen( "php://stdin", "r" );
$line = fgets( $fp );
$line = str_replace( "\n", "", $line );
fclose( $fp );
if( strtolower($line) == "q" ) $end = TRUE;
}
?>