private function isPullDaemonRunning() { $control = new PhabricatorDaemonControl(); $daemons = $control->loadRunningDaemons(); foreach ($daemons as $daemon) { if ($daemon->isRunning() && $daemon->getName() == 'PhabricatorRepositoryPullLocalDaemon') { return true; } } return false; }
case 'status': $err = $control->executeStatusCommand(); exit($err); case 'stop': $pass_argv = array_slice($argv, 2); $err = $control->executeStopCommand($pass_argv); exit($err); case 'restart': $err = $control->executeStopCommand(array()); if ($err) { exit($err); } /* Fall Through */ /* Fall Through */ case 'start': $running = $control->loadRunningDaemons(); // "running" might not mean actually running so much as was running at // some point. ergo, do a quick grouping and only barf if daemons are // *actually* running. $running_dict = mgroup($running, 'isRunning'); if (!empty($running_dict[true])) { echo phutil_console_wrap("phd start: Unable to start daemons because daemons are already " . "running.\n" . "You can view running daemons with 'phd status'.\n" . "You can stop running daemons with 'phd stop'.\n" . "You can use 'phd restart' to stop all daemons before starting new " . "daemons.\n"); exit(1); } $daemons = array(array('PhabricatorRepositoryPullLocalDaemon', array()), array('PhabricatorGarbageCollectorDaemon', array())); $taskmasters = PhabricatorEnv::getEnvConfig('phd.start-taskmasters'); for ($ii = 0; $ii < $taskmasters; $ii++) { $daemons[] = array('PhabricatorTaskmasterDaemon', array()); } will_launch($control); foreach ($daemons as $spec) {