X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=bin%2Fdaemon.php;h=53a564b8bc15ff77099206ad0f56d166b934a610;hb=fbcfa46bebac112475921d78893d76c303b1c9bb;hp=7182cb8eca8f58dede6595bc0278fabb2f204458;hpb=4e4eab7548c6c7bb7f096beb39419fef276af500;p=friendica.git diff --git a/bin/daemon.php b/bin/daemon.php index 7182cb8eca..53a564b8bc 100755 --- a/bin/daemon.php +++ b/bin/daemon.php @@ -60,7 +60,10 @@ if (!file_exists('index.php') && (sizeof($_SERVER['argv']) != 0)) { require dirname(__DIR__) . '/vendor/autoload.php'; $dice = (new Dice())->addRules(include __DIR__ . '/../static/dependencies.config.php'); -$dice = $dice->addRule(LoggerInterface::class,['constructParams' => ['daemon']]); +/** @var \Friendica\Core\Addon\Capability\ICanLoadAddons $addonLoader */ +$addonLoader = $dice->create(\Friendica\Core\Addon\Capability\ICanLoadAddons::class); +$dice = $dice->addRules($addonLoader->getActiveAddonConfig('dependencies')); +$dice = $dice->addRule(LoggerInterface::class, ['constructParams' => [Logger\Capability\LogChannel::DAEMON]]); DI::init($dice); \Friendica\Core\Logger\Handler\ErrorHandler::register($dice->create(\Psr\Log\LoggerInterface::class)); @@ -76,8 +79,8 @@ DI::config()->reload(); if (empty(DI::config()->get('system', 'pidfile'))) { die(<< [ + + 'system' => [ 'pidfile' => '/path/to/daemon.pid', ], TXT @@ -160,9 +163,14 @@ if (!$foreground) { exit(1); } elseif ($pid) { // The parent process continues here + if (!file_put_contents($pidfile, $pid)) { + echo "Pid file wasn't written.\n"; + Logger::warning('Could not store pid file'); + posix_kill($pid, SIGTERM); + exit(1); + } echo 'Child process started with pid ' . $pid . ".\n"; Logger::notice('Child process started', ['pid' => $pid]); - file_put_contents($pidfile, $pid); exit(0); } @@ -247,5 +255,6 @@ while (true) { } function shutdown() { + posix_kill(posix_getpid(), SIGTERM); posix_kill(posix_getpid(), SIGHUP); }