Beispiel #1
0
 /**
  * 停止服务
  * @return void
  */
 public static function stop()
 {
     // 如果没有子进程则直接退出
     $all_worker_pid = self::getPidWorkerNameMap();
     if (empty($all_worker_pid)) {
         exit(0);
     }
     // 标记server开始关闭
     self::$serverStatus = self::STATUS_SHUTDOWN;
     // killWorkerTimeLong 秒后如果还没停止则强制杀死所有进程
     Lib\Task::add(self::KILL_WORKER_TIME_LONG, array('\\Man\\Core\\Master', 'stopAllWorker'), array(true), false);
     // 停止所有worker
     self::stopAllWorker();
 }
Beispiel #2
0
 /**
  * 服务运行
  * @return void
  */
 public static function run()
 {
     // 输出信息
     self::notice("Workerman is starting ...", true);
     // 初始化
     self::init();
     // 检查环境
     self::checkEnv();
     // 执行各个项目启动前脚本
     self::beforeStart();
     // 创建监听套接字
     self::createSocketsAndListen();
     // 创建worker进程
     self::createWorkers();
     // 输出信息
     self::notice("Workerman start success ...", true);
     // 标记sever状态为运行中...
     self::$serverStatus = self::STATUS_RUNNING;
     // 主循环
     self::loop();
 }