Esempio n. 1
0
    // Выходим из родительского процесса, привязанного к консоли...
    exit(0);
}
//	Делаем основным процессом дочерний...
posix_setsid();
//	Включаем тики, в противном случае скрипт просто повисает и не реагирует на внешние раздражители...
declare (ticks=1);
//	Здесь я подключаю всякую нужную штуку...
include __DIR__ . '/Daemon.php';
include __DIR__ . '/ExampleClass.php';
//	Класс изображающий полезную нагрузку...
$example = new ExampleClass();
//	Именно эта функция делает всякую полезую нам нагрузку, которую мы хотим демонизировать...
//	Если нам нужны какие-нибудь классы не забываем упомянуть их тут в противном случае простоо не получите к ним доступ...
$func = function () use($example) {
    // Тут живёт всякая полезная нагрука...
    $example->test();
    return true;
};
//	Собственно создаём демона, соответственно говорим ему куда записывать свой pid...
$daemon = new Daemon('/tmp/daemon.pid');
//	Закрываем порочные связи со стандартным вводом-выводом...
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
//	Перенаправляем ввод-вывод туда куда нам надо или не надо...
$STDIN = fopen('/dev/null', 'r');
$STDOUT = fopen('/dev/null', 'wb');
$STDERR = fopen('/dev/null', 'wb');
//	Запускаем функцию несущую полезную нагрузку...
$daemon->run($func);