#!/usr/bin/env php addEventListener(WorkerStartEvent::getName(), function () { try { // 不退出,而是返回 code $retcode = Command::main(false); } finally { global $_swoole_atomic; $_swoole_atomic->set($retcode ?? 0); Framework::getInstance()->stop($retcode ?? 0); } }, 1); try { $options = ServerStartCommand::exportOptionArray(); $options['driver'] = DIRECTORY_SEPARATOR === '/' ? 'swoole' : 'workerman'; $options['worker-num'] = 1; $options['private-mode'] = true; (new Framework($options))->init()->start(); exit($_swoole_atomic->get()); } catch (Throwable $e) { echo $e->getMessage() . PHP_EOL; exit(1); }