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