예제 #1
0
 /**
  * 初始化 配置、进程名、共享内存、消息队列等
  * @return void
  */
 public static function init()
 {
     // 获取配置文件
     $config_path = Lib\Config::$configFile;
     // 设置进程名称,如果支持的话
     self::setProcTitle(self::NAME . ':master with-config:' . $config_path);
     // 初始化共享内存消息队列
     if (extension_loaded('sysvmsg') && extension_loaded('sysvshm')) {
         self::$shmId = shm_attach(IPC_KEY, DEFAULT_SHM_SIZE, 0666);
         self::$queueId = msg_get_queue(IPC_KEY, 0666);
         msg_set_queue(self::$queueId, array('msg_qbytes' => 65535));
     }
 }
예제 #2
0
 /**
  * 初始化 配置、进程名、共享内存、消息队列等
  * @return void
  */
 public static function init()
 {
     // 因为子进程要更换用户、开低端口等,必须是root启动
     if ($user_info = posix_getpwuid(posix_getuid())) {
         if ($user_info['name'] !== 'root') {
             exit("You should run workerman as root . Permission denied\n");
         }
     }
     // 获取配置文件
     $config_path = Config::$configFile;
     // 设置进程名称,如果支持的话
     self::setProcTitle(self::NAME . ':master with-config:' . $config_path);
     // 初始化共享内存消息队列
     if (extension_loaded('sysvmsg') && extension_loaded('sysvshm')) {
         self::$shmId = shm_attach(IPC_KEY, DEFAULT_SHM_SIZE);
         self::$queueId = msg_get_queue(IPC_KEY);
         msg_set_queue(self::$queueId, array('msg_qbytes' => DEFAULT_MSG_QBYTES));
     }
 }