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