From 5cfc17b0eb9b2e92b38c9aa1106eb5789c684a7e Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 19 Jul 2019 11:49:50 +0800 Subject: [PATCH 1/5] Update Update.php --- application/admin/controller/api/Update.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/admin/controller/api/Update.php b/application/admin/controller/api/Update.php index 96b942112..9ce9b6a9b 100644 --- a/application/admin/controller/api/Update.php +++ b/application/admin/controller/api/Update.php @@ -36,7 +36,7 @@ class Update extends Controller */ public function tree() { - $sync = new Sync('Sync'); + $sync = new Sync('update'); $this->success('获取当前文件列表成功!', $sync->build()); } From 16aa9ecf29caca24da11ee0f912d5d48adaab9b0 Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 19 Jul 2019 14:24:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/api/Plugs.php | 26 +++++++-------------- application/admin/controller/api/Update.php | 15 ++++++------ 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/application/admin/controller/api/Plugs.php b/application/admin/controller/api/Plugs.php index f5501a10f..5c6791e76 100644 --- a/application/admin/controller/api/Plugs.php +++ b/application/admin/controller/api/Plugs.php @@ -28,14 +28,13 @@ class Plugs extends Controller { /** - * Plugs constructor. + * 系统选择器图标 */ - public function __construct() + public function icon() { - parent::__construct(); - if (!NodeService::islogin()) { - $this->error('访问授权失败,请重新登录授权再试!'); - } + $this->title = '图标选择器'; + $this->field = input('field', 'icon'); + $this->fetch(); } /** @@ -46,13 +45,16 @@ class Plugs extends Controller */ public function plupload() { + if (!NodeService::islogin()) { + $this->error('访问授权失败,请重新登录授权再试!'); + } if (!($file = $this->getUploadFile()) || empty($file)) { return json(['uploaded' => false, 'error' => ['message' => '文件上传异常,文件可能过大或未上传']]); } if (!$file->checkExt(strtolower(sysconf('storage_local_exts')))) { return json(['uploaded' => false, 'error' => ['message' => '文件上传类型受限,请在后台配置']]); } - if ($file->checkExt('php')) { + if ($file->checkExt('php,sh')) { return json(['uploaded' => false, 'error' => ['message' => '可执行文件禁止上传到本地服务器']]); } $this->safe = boolval(input('safe')); @@ -95,14 +97,4 @@ class Plugs extends Controller } } - /** - * 系统选择器图标 - */ - public function icon() - { - $this->title = '图标选择器'; - $this->field = input('field', 'icon'); - $this->fetch(); - } - } diff --git a/application/admin/controller/api/Update.php b/application/admin/controller/api/Update.php index 9ce9b6a9b..bafad5c76 100644 --- a/application/admin/controller/api/Update.php +++ b/application/admin/controller/api/Update.php @@ -36,7 +36,7 @@ class Update extends Controller */ public function tree() { - $sync = new Sync('update'); + $sync = new Sync('Update'); $this->success('获取当前文件列表成功!', $sync->build()); } @@ -46,13 +46,14 @@ class Update extends Controller */ public function read($encode) { - $file = env('root_path') . decode($encode); - if (!file_exists($file)) { - $this->error('获取文件内容失败!'); - } else { - $this->success('获取文件内容成功!', [ - 'format' => 'base64', 'content' => base64_encode(file_get_contents($file)), + $this->file = env('root_path') . decode($encode); + if (file_exists($this->file)) { + $this->success('读取文件成功!', [ + 'format' => 'base64', + 'content' => base64_encode(file_get_contents($this->file)), ]); + } else { + $this->error('获取文件内容失败!'); } } From 3f092b53b70e4a3c6b01026d796350b8697c48a3 Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 19 Jul 2019 18:34:51 +0800 Subject: [PATCH 3/5] Update NodeService.php --- application/admin/service/NodeService.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/application/admin/service/NodeService.php b/application/admin/service/NodeService.php index c0900fbf6..d6a77e578 100644 --- a/application/admin/service/NodeService.php +++ b/application/admin/service/NodeService.php @@ -235,14 +235,10 @@ class NodeService if (($uid = session('admin_user.id'))) { session('admin_user', Db::name('SystemUser')->where(['id' => $uid])->find()); } - $authorize = session('admin_user.authorize'); - if (!empty($authorize) && $authids = explode(',', $authorize)) { - $auths = Db::name('SystemAuth')->where(['status' => '1'])->whereIn('id', $authids)->column('id'); - if (empty($auths)) { - session('admin_user.nodes', []); - } else { - session('admin_user.nodes', array_unique(Db::name('SystemAuthNode')->whereIn('auth', $auths)->column('node'))); - } + if (($aids = session('admin_user.authorize'))) { + $where = [['status', 'eq', '1'], ['id', 'in', explode(',', $aids)]]; + $subsql = Db::name('SystemAuth')->field('id')->where($where)->buildSql(); + session('admin_user.nodes', array_unique(Db::name('SystemAuthNode')->whereRaw("auth in {$subsql}")->column('node'))); } else { session('admin_user.nodes', []); } From 079c2dd28a65b957486aed8be7d0978ae3b987f7 Mon Sep 17 00:00:00 2001 From: Anyon Date: Fri, 19 Jul 2019 19:05:03 +0800 Subject: [PATCH 4/5] Update index_search.html --- application/admin/view/user/index_search.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application/admin/view/user/index_search.html b/application/admin/view/user/index_search.html index 7cf0042ae..b2d26a152 100644 --- a/application/admin/view/user/index_search.html +++ b/application/admin/view/user/index_search.html @@ -19,9 +19,9 @@
- +
- +
@@ -54,4 +54,4 @@ - \ No newline at end of file + From 556157c8efa6b1a134379e382dc3a994e286791c Mon Sep 17 00:00:00 2001 From: Anyon Date: Sat, 20 Jul 2019 11:08:40 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[=E6=9B=B4=E6=96=B0]ComposerUpdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vendor/autoload.php | 2 +- vendor/composer/autoload_real.php | 14 +++++++------- vendor/composer/autoload_static.php | 8 ++++---- vendor/composer/installed.json | 8 ++++---- .../think-library/src/command/Sess.php | 18 ++++++++++++++---- .../think-library/src/command/Sync.php | 2 +- .../think-library/src/command/sync/Admin.php | 11 ++++++++++- .../think-library/src/command/sync/Config.php | 11 ++++++++++- .../think-library/src/command/sync/Plugs.php | 11 ++++++++++- .../think-library/src/command/sync/Service.php | 10 +++++++++- .../think-library/src/command/sync/Wechat.php | 11 ++++++++++- .../think-library/src/command/task/Reset.php | 13 ++++++++++++- .../think-library/src/command/task/Start.php | 12 +++++++++++- .../think-library/src/command/task/State.php | 12 +++++++++++- .../think-library/src/command/task/Stop.php | 12 +++++++++++- 15 files changed, 125 insertions(+), 30 deletions(-) diff --git a/vendor/autoload.php b/vendor/autoload.php index ec37f53f7..f62f6cda4 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit715bbba180591c7e55267e7c41402e91::getLoader(); +return ComposerAutoloaderInit05623102e809b1029859cb55f12358ed::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 1da220454..74ca009bc 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit715bbba180591c7e55267e7c41402e91 +class ComposerAutoloaderInit05623102e809b1029859cb55f12358ed { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit715bbba180591c7e55267e7c41402e91 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit715bbba180591c7e55267e7c41402e91', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit05623102e809b1029859cb55f12358ed', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit715bbba180591c7e55267e7c41402e91', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit05623102e809b1029859cb55f12358ed', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit715bbba180591c7e55267e7c41402e91::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit05623102e809b1029859cb55f12358ed::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit715bbba180591c7e55267e7c41402e91 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit715bbba180591c7e55267e7c41402e91::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit05623102e809b1029859cb55f12358ed::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire715bbba180591c7e55267e7c41402e91($fileIdentifier, $file); + composerRequire05623102e809b1029859cb55f12358ed($fileIdentifier, $file); } return $loader; } } -function composerRequire715bbba180591c7e55267e7c41402e91($fileIdentifier, $file) +function composerRequire05623102e809b1029859cb55f12358ed($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index dae97cc4d..12fc72f07 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit715bbba180591c7e55267e7c41402e91 +class ComposerStaticInit05623102e809b1029859cb55f12358ed { public static $files = array ( '841780ea2e1d6545ea3a253239d59c05' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/functions.php', @@ -347,9 +347,9 @@ class ComposerStaticInit715bbba180591c7e55267e7c41402e91 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit715bbba180591c7e55267e7c41402e91::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit715bbba180591c7e55267e7c41402e91::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit715bbba180591c7e55267e7c41402e91::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit05623102e809b1029859cb55f12358ed::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit05623102e809b1029859cb55f12358ed::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit05623102e809b1029859cb55f12358ed::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 1810efee9..dac52f9dc 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -502,12 +502,12 @@ "source": { "type": "git", "url": "https://github.com/zoujingli/ThinkLibrary.git", - "reference": "f3eeca76e07fc7b21f9879ca1ead5b2f30c97d99" + "reference": "c278499d1e7be0db3b76388112ae26038205d052" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/f3eeca76e07fc7b21f9879ca1ead5b2f30c97d99", - "reference": "f3eeca76e07fc7b21f9879ca1ead5b2f30c97d99", + "url": "https://api.github.com/repos/zoujingli/ThinkLibrary/zipball/c278499d1e7be0db3b76388112ae26038205d052", + "reference": "c278499d1e7be0db3b76388112ae26038205d052", "shasum": "", "mirrors": [ { @@ -526,7 +526,7 @@ "qiniu/php-sdk": "^7.2", "topthink/framework": "5.1.*" }, - "time": "2019-07-19T03:42:10+00:00", + "time": "2019-07-20T03:04:58+00:00", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/zoujingli/think-library/src/command/Sess.php b/vendor/zoujingli/think-library/src/command/Sess.php index 7e6edd622..eeb577578 100644 --- a/vendor/zoujingli/think-library/src/command/Sess.php +++ b/vendor/zoujingli/think-library/src/command/Sess.php @@ -16,6 +16,8 @@ namespace library\command; use think\console\Command; +use think\console\Input; +use think\console\Output; /** * 清理会话文件 @@ -25,22 +27,30 @@ use think\console\Command; class Sess extends Command { + /** + * 指令属性配置 + */ protected function configure() { $this->setName('xclean:session')->setDescription('清理失效过期的会话文件'); } - protected function execute(\think\console\Input $input, \think\console\Output $output) + /** + * 执行清理操作 + * @param Input $input + * @param Output $output + */ + protected function execute(Input $input, Output $output) { - $output->writeln('Start cleaning up invalid session files'); + $output->comment('=== 准备清理无效的会话文件 ==='); foreach (glob(config('session.path') . 'sess_*') as $file) { list($fileatime, $filesize) = [fileatime($file), filesize($file)]; if ($filesize < 1 || $fileatime < time() - 3600) { - $output->writeln('clear session file -> [ ' . date('Y-m-d H:i:s', $fileatime) . ' ] ' . basename($file) . " {$filesize}"); + $output->info('clear session file -> [ ' . date('Y-m-d H:i:s', $fileatime) . ' ] ' . basename($file) . " {$filesize}"); @unlink($file); } } - $output->writeln('Complete cleaning of invalid session files'); + $output->comment('=== 成功清理无效的会话文件 ==='); } } diff --git a/vendor/zoujingli/think-library/src/command/Sync.php b/vendor/zoujingli/think-library/src/command/Sync.php index 10aecc13e..74995692c 100644 --- a/vendor/zoujingli/think-library/src/command/Sync.php +++ b/vendor/zoujingli/think-library/src/command/Sync.php @@ -57,7 +57,7 @@ class Sync extends Command } /** - * 执行指令 + * 执行更新操作 * @param Input $input * @param Output $output */ diff --git a/vendor/zoujingli/think-library/src/command/sync/Admin.php b/vendor/zoujingli/think-library/src/command/sync/Admin.php index 9c0d84971..695a93cd8 100644 --- a/vendor/zoujingli/think-library/src/command/sync/Admin.php +++ b/vendor/zoujingli/think-library/src/command/sync/Admin.php @@ -25,17 +25,26 @@ use think\console\Output; */ class Admin extends Sync { + + /** + * 指令属性配置 + */ protected function configure() { $this->modules = ['application/admin/', 'think']; $this->setName('xsync:admin')->setDescription('从远程覆盖本地Admin模块的所有代码'); } + /** + * 执行更新操作 + * @param Input $input + * @param Output $output + */ protected function execute(Input $input, Output $output) { $root = str_replace('\\', '/', env('root_path')); if (file_exists("{$root}/application/admin/sync.lock")) { - $this->output->error('admin module has been locked'); + $this->output->error("--- Admin 模块已经被锁定,不能继续更新"); } else { parent::execute($input, $output); } diff --git a/vendor/zoujingli/think-library/src/command/sync/Config.php b/vendor/zoujingli/think-library/src/command/sync/Config.php index 2bb4d3765..a26b6d192 100644 --- a/vendor/zoujingli/think-library/src/command/sync/Config.php +++ b/vendor/zoujingli/think-library/src/command/sync/Config.php @@ -25,17 +25,26 @@ use think\console\Output; */ class Config extends Sync { + + /** + * 指令属性配置 + */ protected function configure() { $this->modules = ['config/']; $this->setName('xsync:config')->setDescription('从远程覆盖本地Config的部分配置文件'); } + /** + * 执行更新操作 + * @param Input $input + * @param Output $output + */ protected function execute(Input $input, Output $output) { $root = str_replace('\\', '/', env('root_path')); if (file_exists("{$root}/config/sync.lock")) { - $this->output->error('config files has been locked'); + $this->output->error("--- Config 配置已经被锁定,不能继续更新"); } else { parent::execute($input, $output); } diff --git a/vendor/zoujingli/think-library/src/command/sync/Plugs.php b/vendor/zoujingli/think-library/src/command/sync/Plugs.php index a5b70136e..4966009ed 100644 --- a/vendor/zoujingli/think-library/src/command/sync/Plugs.php +++ b/vendor/zoujingli/think-library/src/command/sync/Plugs.php @@ -25,17 +25,26 @@ use think\console\Output; */ class Plugs extends Sync { + + /** + * 指令属性配置 + */ protected function configure() { $this->modules = ['public/static/']; $this->setName('xsync:plugs')->setDescription('从远程覆盖本地Plugs资源插件等代码'); } + /** + * 执行更新操作 + * @param Input $input + * @param Output $output + */ protected function execute(Input $input, Output $output) { $root = str_replace('\\', '/', env('root_path')); if (file_exists("{$root}/public/static/sync.lock")) { - $this->output->error('plugs static files has been locked'); + $this->output->error("--- Plugs 资源已经被锁定,不能继续更新"); } else { parent::execute($input, $output); } diff --git a/vendor/zoujingli/think-library/src/command/sync/Service.php b/vendor/zoujingli/think-library/src/command/sync/Service.php index d9f85a018..a342ea558 100644 --- a/vendor/zoujingli/think-library/src/command/sync/Service.php +++ b/vendor/zoujingli/think-library/src/command/sync/Service.php @@ -25,17 +25,25 @@ use think\console\Output; */ class Service extends Sync { + /** + * 指令属性配置 + */ protected function configure() { $this->modules = ['application/service/']; $this->setName('xsync:service')->setDescription('从远程覆盖本地Service模块的所有代码'); } + /** + * 执行更新操作 + * @param Input $input + * @param Output $output + */ protected function execute(Input $input, Output $output) { $root = str_replace('\\', '/', env('root_path')); if (file_exists("{$root}/application/service/sync.lock")) { - $this->output->error('service module has been locked'); + $this->output->error("--- Service 模块已经被锁定,不能继续更新"); } else { parent::execute($input, $output); } diff --git a/vendor/zoujingli/think-library/src/command/sync/Wechat.php b/vendor/zoujingli/think-library/src/command/sync/Wechat.php index 8d0498b09..903ef9730 100644 --- a/vendor/zoujingli/think-library/src/command/sync/Wechat.php +++ b/vendor/zoujingli/think-library/src/command/sync/Wechat.php @@ -25,17 +25,26 @@ use think\console\Output; */ class Wechat extends Sync { + + /** + * 指令属性配置 + */ protected function configure() { $this->modules = ['application/wechat/']; $this->setName('xsync:wechat')->setDescription('从远程覆盖本地Wechat模块的所有代码'); } + /** + * 执行更新操作 + * @param Input $input + * @param Output $output + */ protected function execute(Input $input, Output $output) { $root = str_replace('\\', '/', env('root_path')); if (file_exists("{$root}/application/wechat/sync.lock")) { - $this->output->error('wechat module has been locked'); + $this->output->error("--- Wechat 模块已经被锁定,不能继续更新"); } else { parent::execute($input, $output); } diff --git a/vendor/zoujingli/think-library/src/command/task/Reset.php b/vendor/zoujingli/think-library/src/command/task/Reset.php index 7d0723838..302a61b66 100644 --- a/vendor/zoujingli/think-library/src/command/task/Reset.php +++ b/vendor/zoujingli/think-library/src/command/task/Reset.php @@ -16,6 +16,8 @@ namespace library\command\task; use library\command\Task; +use think\console\Input; +use think\console\Output; /** * Class Reset @@ -24,12 +26,21 @@ use library\command\Task; class Reset extends Task { + /** + * 指令属性配置 + */ protected function configure() { $this->setName('xtask:reset')->setDescription('重新启动消息队列守护进程'); } - protected function execute(\think\console\Input $input, \think\console\Output $output) + /** + * 执行重置操作 + * @param Input $input + * @param Output $output + * @return int|void|null + */ + protected function execute(Input $input, Output $output) { if (($pid = $this->checkProcess()) > 0) { $this->closeProcess($pid); diff --git a/vendor/zoujingli/think-library/src/command/task/Start.php b/vendor/zoujingli/think-library/src/command/task/Start.php index 0b203661b..d6005e634 100644 --- a/vendor/zoujingli/think-library/src/command/task/Start.php +++ b/vendor/zoujingli/think-library/src/command/task/Start.php @@ -16,6 +16,8 @@ namespace library\command\task; use library\command\Task; +use think\console\Input; +use think\console\Output; /** * Class Start @@ -24,12 +26,20 @@ use library\command\Task; class Start extends Task { + /** + * 指令属性配置 + */ protected function configure() { $this->setName('xtask:start')->setDescription('开始启动消息队列守护进程'); } - protected function execute(\think\console\Input $input, \think\console\Output $output) + /** + * 执行启动操作 + * @param Input $input + * @param Output $output + */ + protected function execute(Input $input, Output $output) { if (($pid = $this->checkProcess()) > 0) { $output->info("The message queue daemon {$pid} already exists!"); diff --git a/vendor/zoujingli/think-library/src/command/task/State.php b/vendor/zoujingli/think-library/src/command/task/State.php index 9d8db3339..632164502 100644 --- a/vendor/zoujingli/think-library/src/command/task/State.php +++ b/vendor/zoujingli/think-library/src/command/task/State.php @@ -16,6 +16,8 @@ namespace library\command\task; use library\command\Task; +use think\console\Input; +use think\console\Output; /** * Class State @@ -24,12 +26,20 @@ use library\command\Task; class State extends Task { + /** + * 指令属性配置 + */ protected function configure() { $this->setName('xtask:state')->setDescription('查看消息队列守护进程状态'); } - protected function execute(\think\console\Input $input, \think\console\Output $output) + /** + * 执行查询操作 + * @param Input $input + * @param Output $output + */ + protected function execute(Input $input, Output $output) { if (($pid = $this->checkProcess()) > 0) { $output->info("message queue daemon {$pid} is runing."); diff --git a/vendor/zoujingli/think-library/src/command/task/Stop.php b/vendor/zoujingli/think-library/src/command/task/Stop.php index 8c15ee375..f47c7ff84 100644 --- a/vendor/zoujingli/think-library/src/command/task/Stop.php +++ b/vendor/zoujingli/think-library/src/command/task/Stop.php @@ -16,6 +16,8 @@ namespace library\command\task; use library\command\Task; +use think\console\Input; +use think\console\Output; /** * Class Stop @@ -24,12 +26,20 @@ use library\command\Task; class Stop extends Task { + /** + * 指令属性配置 + */ protected function configure() { $this->setName('xtask:stop')->setDescription('立即停止消息队列守护进程'); } - protected function execute(\think\console\Input $input, \think\console\Output $output) + /** + * 执行停止操作 + * @param Input $input + * @param Output $output + */ + protected function execute(Input $input, Output $output) { if (($pid = $this->checkProcess()) > 0) { $this->closeProcess($pid);