getServer(); $manager->setDaemon($dtl->get('daemon', 0)); if (!in_array($dtl->get('action'), self::ACTIONS)) { return 'I don\'t know what I want to do.'; } if ($manager->isRunner() && $dtl->get('action') == 'start') { return 'Service is running. Please use restart.'; } $manager->shutdown(); if ($dtl->get('action') == 'stop') { return 'shutdown success.'; } return $this->generate_runtime_builder($manager); } /** * @param $manager * @return mixed * @throws \Kiri\Exception\NotFindClassException * @throws \ReflectionException */ private function generate_runtime_builder($manager) { exec(PHP_BINARY . ' ' . APP_PATH . 'kiri.php runtime:builder'); if (!is_enable_file_modification_listening()) { scan_directory(directory('app'), 'App'); $loader = Kiri::app()->getRouter(); $loader->_loader(); } $event = di(EventProvider::class); $event->on(OnWorkerStart::class, [di(WorkerDispatch::class), 'dispatch']); return $manager->start(); } }