X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=bin%2Fdaemon.php;h=e550aea891ed157adad7b585019598a68dab80b5;hb=73a9db84ee0850d8ec13adda8c4c98e2fd010865;hp=d5ef02a8ece961ce73ffb195afaeaa78d940cca6;hpb=660912351c17b0ad5f0dc85fede5bf618b5aa8ea;p=friendica.git diff --git a/bin/daemon.php b/bin/daemon.php index d5ef02a8ec..e550aea891 100755 --- a/bin/daemon.php +++ b/bin/daemon.php @@ -1,7 +1,7 @@ #!/usr/bin/env php 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 @@ -115,7 +115,7 @@ if (is_readable($pidfile)) { } if (empty($pid) && in_array($mode, ['stop', 'status'])) { - DI::config()->set('system', 'worker_daemon_mode', false); + DI::keyValue()->set('worker_daemon_mode', false); die("Pidfile wasn't found. Is the daemon running?\n"); } @@ -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"); } @@ -137,7 +137,7 @@ if ($mode == 'stop') { Logger::notice('Worker daemon process was killed', ['pid' => $pid]); - DI::config()->set('system', 'worker_daemon_mode', false); + DI::keyValue()->set('worker_daemon_mode', false); die("Worker daemon process $pid was killed.\n"); } @@ -181,7 +181,7 @@ if (!$foreground) { DBA::connect(); } -DI::config()->set('system', 'worker_daemon_mode', true); +DI::keyValue()->set('worker_daemon_mode', true); // Just to be sure that this script really runs endlessly set_time_limit(0); @@ -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); }