天天看點

php workerman殺一個程序,無法關閉workerman程序

這是Laravel架構調用Workerman

namespace App\Console\Commands;

use Illuminate\Console\Command;

use Illuminate\Console\ConfirmableTrait;

use Workerman\Worker;

use PHPSocketIO\SocketIO;

use Config;

class Workerman extends Command

{

use ConfirmableTrait;

protected $signature = 'workerman:server {action} {-d|daemon=default}';

protected $description = 'Run Workerman Server.';

public function __construct()

{

parent::__construct();

}

public function handle()

{

global $argv, $argc;

$action = $this->argument('action');

if (is_null($this->option('daemon'))) {

$argv = ;

$argc = 3;

} else {

$argv = ;

$argc = 2;

}

switch ($action) {

case 'start':

$port = Config::get('workerman.server.port');

$events = Config::get('workerman.events');

$server = new SocketIO($port);

foreach ($events as $event) {

new $event($server);

}

Worker::runAll();

break;

case 'stop':

Worker::stopAll();

break;

case 'status':

$this->info(Worker::getStatus());

break;

default:

$this->error($action . ' action does not exist, try one one thoses : start, stop, status');

break;

}

}

}

我用 php artisan workerman:server start -d 可以正常啟動,但是用 php artisan workerman:server stop 卻無法停掉workerman程序。