SIGINT — сигнал, посылаемый процессу, когда в консоли пользователь наживает Ctrl+C, 
Всё, как оказалось, довольно просто.
s.php:
<?php
declare(ticks = 1);
$GLOBALS['stop'] = false;
function stop() {
    $GLOBALS['stop'] = true;
}
pcntl_signal(SIGINT, 'stop');
while (!$GLOBALS['stop']) {
    echo "Hello!\n";
    sleep(1);
}
echo "Good bye!\n";
И сам запуск:
$> php ./s.php Hello! Hello! Hello! ^CGood bye! $>
P.S. Метод объекта в качестве функции обратного вызова работает, проверено.
 
2 comments:
Не знал про declare, спасибо за инфу!
Всегда пожалуйста :) Скоро ещё выложу, как делать демона без единой строчки кода на PHP...
Post a Comment