X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=bin%2Fdaemon.php;h=e550aea891ed157adad7b585019598a68dab80b5;hb=73a9db84ee0850d8ec13adda8c4c98e2fd010865;hp=385f725e34f3479dca3d6982146ce1beb514dedf;hpb=360614d2cf3aceeb763ef1281ad5236878f5d735;p=friendica.git diff --git a/bin/daemon.php b/bin/daemon.php index 385f725e34..e550aea891 100755 --- a/bin/daemon.php +++ b/bin/daemon.php @@ -33,6 +33,7 @@ if (php_sapi_name() !== 'cli') { use Dice\Dice; use Friendica\App\Mode; use Friendica\Core\Logger; +use Friendica\Core\Update; use Friendica\Core\Worker; use Friendica\Database\DBA; use Friendica\DI; @@ -63,7 +64,6 @@ $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()) { die("Friendica isn't properly installed yet.\n"); @@ -71,13 +71,13 @@ if (DI::mode()->isInstall()) { DI::mode()->setExecutor(Mode::DAEMON); -DI::config()->load(); +DI::config()->reload(); if (empty(DI::config()->get('system', 'pidfile'))) { die(<< [ + + 'system' => [ 'pidfile' => '/path/to/daemon.pid', ], TXT @@ -126,7 +126,7 @@ if ($mode == 'status') { unlink($pidfile); - DI::config()->set('system', 'worker_daemon_mode', false); + DI::keyValue()->set('worker_daemon_mode', false); die("Daemon process $pid isn't running.\n"); } @@ -193,6 +193,9 @@ $last_cron = 0; // Now running as a daemon. while (true) { + // Check the database structure and possibly fixes it + Update::check(DI::basePath(), true); + if (!$do_cron && ($last_cron + $wait_interval) < time()) { Logger::info('Forcing cron worker call.', ['pid' => $pid]); $do_cron = true; @@ -244,5 +247,6 @@ while (true) { } function shutdown() { + posix_kill(posix_getpid(), SIGTERM); posix_kill(posix_getpid(), SIGHUP); }