Index: src/__phutil_library_map__.php =================================================================== --- src/__phutil_library_map__.php +++ src/__phutil_library_map__.php @@ -1924,6 +1924,7 @@ 'PhabricatorSetupCheckAuth' => 'applications/config/check/PhabricatorSetupCheckAuth.php', 'PhabricatorSetupCheckBaseURI' => 'applications/config/check/PhabricatorSetupCheckBaseURI.php', 'PhabricatorSetupCheckBinaries' => 'applications/config/check/PhabricatorSetupCheckBinaries.php', + 'PhabricatorSetupCheckDaemons' => 'applications/config/check/PhabricatorSetupCheckDaemons.php', 'PhabricatorSetupCheckDatabase' => 'applications/config/check/PhabricatorSetupCheckDatabase.php', 'PhabricatorSetupCheckExtensions' => 'applications/config/check/PhabricatorSetupCheckExtensions.php', 'PhabricatorSetupCheckExtraConfig' => 'applications/config/check/PhabricatorSetupCheckExtraConfig.php', @@ -4564,6 +4565,7 @@ 'PhabricatorSetupCheckAuth' => 'PhabricatorSetupCheck', 'PhabricatorSetupCheckBaseURI' => 'PhabricatorSetupCheck', 'PhabricatorSetupCheckBinaries' => 'PhabricatorSetupCheck', + 'PhabricatorSetupCheckDaemons' => 'PhabricatorSetupCheck', 'PhabricatorSetupCheckDatabase' => 'PhabricatorSetupCheck', 'PhabricatorSetupCheckExtensions' => 'PhabricatorSetupCheck', 'PhabricatorSetupCheckExtraConfig' => 'PhabricatorSetupCheck', Index: src/applications/config/check/PhabricatorSetupCheckDaemons.php =================================================================== --- /dev/null +++ src/applications/config/check/PhabricatorSetupCheckDaemons.php @@ -0,0 +1,46 @@ +setViewer(PhabricatorUser::getOmnipotentUser()) + ->withStatus(PhabricatorDaemonLogQuery::STATUS_ALIVE) + ->withDaemonClasses(array('PhabricatorTaskmasterDaemon')) + ->setLimit(1) + ->execute(); + + if (!$task_daemon) { + $doc_href = PhabricatorEnv::getDocLink( + 'article/Managing_Daemons_with_phd.html'); + + $summary = pht( + 'You must start the Phabricator daemons to send email, rebuild '. + 'search indexes, and do other background processing.'); + + $message = pht( + 'The Phabricator daemons are not running, so Phabricator will not '. + 'be able to perform background processing (including sending email, '. + 'rebuilding search indexes, importing commits, cleaning up old data, '. + 'running builds, etc.).'. + "\n\n". + 'Use %s to start daemons. See %s for more information.', + phutil_tag('tt', array(), 'bin/phd start'), + phutil_tag( + 'a', + array( + 'href' => $doc_href, + ), + pht('Managing Daemons with phd'))); + + $this->newIssue('daemons.not-running') + ->setShortName(pht('Daemons Not Running')) + ->setName(pht('Phabricator Daemons Are Not Running')) + ->setSummary($summary) + ->setMessage($message) + ->addCommand('phabricator/ $ ./bin/phd start'); + } + + } +}