72 lines
1.9 KiB
PHP
72 lines
1.9 KiB
PHP
|
<?php
|
|||
|
/**
|
|||
|
* run with command
|
|||
|
* php start.php start
|
|||
|
*/
|
|||
|
|
|||
|
namespace addons\notice\library\libs\GatewayWorker;
|
|||
|
|
|||
|
ini_set('display_errors', 'on');
|
|||
|
|
|||
|
use think\console\Command;
|
|||
|
use think\console\Input;
|
|||
|
use think\console\input\Argument;
|
|||
|
use think\console\Output;
|
|||
|
use Workerman\Worker;
|
|||
|
|
|||
|
/**
|
|||
|
*
|
|||
|
*/
|
|||
|
class Server extends Command
|
|||
|
{
|
|||
|
|
|||
|
protected function configure()
|
|||
|
{
|
|||
|
$this->setName('notice')
|
|||
|
->addArgument('action', Argument::OPTIONAL, "action start [d]|stop|restart|status")
|
|||
|
->addArgument('type', Argument::OPTIONAL, "d -d")
|
|||
|
->setDescription('notice 会话服务');
|
|||
|
}
|
|||
|
|
|||
|
protected function execute(Input $input, Output $output)
|
|||
|
{
|
|||
|
global $argv;
|
|||
|
$action = trim($input->getArgument('action'));
|
|||
|
$type = trim($input->getArgument('type')) ? '-d' : '';
|
|||
|
|
|||
|
$argv[0] = 'notice';
|
|||
|
$argv[1] = $action;
|
|||
|
$argv[2] = $type ? '-d' : '';
|
|||
|
$this->start();
|
|||
|
}
|
|||
|
|
|||
|
private function start()
|
|||
|
{
|
|||
|
if (strpos(strtolower(PHP_OS), 'win') === 0) {
|
|||
|
exit("Windows下不支持窗口启动,请手动运行(not support windows, please use):addons/notice/library/libs/GatewayWorker/start_for_win.bat\n");
|
|||
|
}
|
|||
|
|
|||
|
// 检查扩展
|
|||
|
if (!extension_loaded('pcntl')) {
|
|||
|
exit("Please install pcntl extension. See http://doc.workerman.net/appendices/install-extension.html\n");
|
|||
|
}
|
|||
|
|
|||
|
if (!extension_loaded('posix')) {
|
|||
|
exit("Please install posix extension. See http://doc.workerman.net/appendices/install-extension.html\n");
|
|||
|
}
|
|||
|
|
|||
|
// 标记是全局启动
|
|||
|
define('GLOBAL_START', 1);
|
|||
|
|
|||
|
require_once __DIR__ . '/vendor/autoload.php';
|
|||
|
|
|||
|
// 加载所有Applications/*/start.php,以便启动所有服务
|
|||
|
foreach (glob(__DIR__ . '/Applications/*/start*.php') as $start_file) {
|
|||
|
require_once $start_file;
|
|||
|
}
|
|||
|
|
|||
|
// 运行所有服务
|
|||
|
Worker::runAll();
|
|||
|
}
|
|||
|
}
|