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.'); Process::signal($this->signal, [$this, 'onSignal']); } /** * @param $server * @param $worker_id */ public function onSignal() { while ($ret = Process::wait(false)) { echo "PID={$ret['pid']}\n"; } // // $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(); } }