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();
 | 
						||
    }
 | 
						||
}
 |