manager_pid); $events = Snowflake::app()->getEvent(); $events->trigger(Event::SERVER_MANAGER_START, [$server]); if (!Snowflake::isLinux()) { return; } name(Config::get('id', false, 'system') . ' Server Manager.'); Coroutine\go([$this, 'onSignal'], $server); } /** * @param $server * @param $worker_id */ public function onSignal($server) { $receive = Coroutine::waitSignal($this->signal, 30); while ($receive === true) { if ($this->isPrint === false) { $this->warning(sprintf('Receive Worker stop event.')); $this->isPrint = true; } if (!Snowflake::app()->isRun()) { break; } sleep(1); } return $server->stop(); } }