/** * 初始化 配置、进程名、共享内存、消息队列等 * @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)); } }
/** * 初始化 配置、进程名、共享内存、消息队列等 * @return void */ public static function init() { // 因为子进程要更换用户、开低端口等,必须是root启动 if ($user_info = posix_getpwuid(posix_getuid())) { if ($user_info['name'] !== 'root') { exit("[31;40mYou should run workerman as root . Permission denied[0m\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)); } }