From fc75362bacd78d0f435e2550ec5e6cd7cb55cb7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Mon, 7 Sep 2020 16:46:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpServer/Server.php | 17 +++++++++++++++++ System/Application.php | 1 + 2 files changed, 18 insertions(+) diff --git a/HttpServer/Server.php b/HttpServer/Server.php index bb8026e2..89441635 100644 --- a/HttpServer/Server.php +++ b/HttpServer/Server.php @@ -60,6 +60,8 @@ class Server extends Application /** @var Http|Websocket|Packet|Receive */ private $baseServer; + public $daemon = 0; + /** * @param array $configs * @return Http|Packet|Receive|Websocket @@ -198,6 +200,20 @@ class Server extends Application } + /** + * @param $daemon + * @return Server + */ + public function setDaemon($daemon) + { + if (!in_array($daemon, [0, 1])) { + return $this; + } + $this->daemon = $daemon; + return $this; + } + + /** * @return Http|Websocket|Packet|Receive */ @@ -252,6 +268,7 @@ class Server extends Application if (!($this->baseServer instanceof \Swoole\Server)) { $class = $this->dispatch($config['type']); $this->baseServer = new $class($config['host'], $config['port'], SWOOLE_PROCESS, $config['mode']); + $settings['daemonize'] = $this->daemon; if (!isset($settings['pid_file'])) { $settings['pid_file'] = APP_PATH . 'storage/server.pid'; } diff --git a/System/Application.php b/System/Application.php index 0f1ff488..c71c2f50 100644 --- a/System/Application.php +++ b/System/Application.php @@ -71,6 +71,7 @@ class Application extends BaseApplication public function start(Input $argv) { $manager = Snowflake::app()->server; + $manager->setDaemon($argv->get('daemon', 0)); switch ($argv->get('action')) { case 'stop': $manager->shutdown();