X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=bin%2Fdaemon.php;h=1682d366ede0ca16fd05c3ab8f0df7bd04b13a0a;hb=51a7b5c5846c320dd273f5b1005d856416dd1252;hp=cc86a9f20155500817cf9622571c72babb8bf398;hpb=74d7d7e164364c09b7fdfbf64e15168ccd56508a;p=friendica.git diff --git a/bin/daemon.php b/bin/daemon.php index cc86a9f201..1682d366ed 100755 --- a/bin/daemon.php +++ b/bin/daemon.php @@ -1,7 +1,7 @@ #!/usr/bin/env php . * + */ + +/** * Run the worker from a daemon. * * This script was taken from http://php.net/manual/en/function.pcntl-fork.php */ - if (php_sapi_name() !== 'cli') { header($_SERVER["SERVER_PROTOCOL"] . ' 403 Forbidden'); exit(); @@ -60,6 +62,7 @@ $dice = (new Dice())->addRules(include __DIR__ . '/../static/dependencies.config $dice = $dice->addRule(LoggerInterface::class,['constructParams' => ['daemon']]); DI::init($dice); +\Friendica\Core\Logger\Handler\ErrorHandler::register($dice->create(\Psr\Log\LoggerInterface::class)); $a = DI::app(); if (DI::mode()->isInstall()) { @@ -195,7 +198,7 @@ while (true) { $do_cron = true; } - if ($do_cron || (!DI::process()->isMaxLoadReached() && Worker::entriesExists() && Worker::isReady())) { + if ($do_cron || (!DI::system()->isMaxLoadReached() && Worker::entriesExists() && Worker::isReady())) { Worker::spawnWorker($do_cron); } else { Logger::info('Cool down for 5 seconds', ['pid' => $pid]); @@ -224,10 +227,12 @@ while (true) { usleep($sleep); $pid = pcntl_waitpid(-1, $status, WNOHANG); - Logger::info('Checked children status via pcntl_waitpid', ['pid' => $pid, 'status' => $status]); - + if ($pid > 0) { + Logger::info('Children quit via pcntl_waitpid', ['pid' => $pid, 'status' => $status]); + } + $timeout = ($seconds >= $wait_interval); - } while (!$timeout && !Worker::IPCJobsExists()); + } while (!$timeout && !Worker\IPC::JobsExists()); if ($timeout) { $do_cron = true;