`

cannot restore segment prot after reloc错误的解决方法

阅读更多

最近用到gearman。由于C语言的server一直编译不过去(貌似是boost的问题)。所以想到用java版本的server。但是没想到又遇到了一些问题。

首先运行命令:java -jar java-gearman-service-0.5.jar

结果出现如下提示:

java/nio/channels/CompletionHandler
java-gearman-service-0.5
usage:
java [jvm options] -jar java-gearman-service-0.5.jar [server options]
Options:
-p PORT   --port=PORT     Defines what port number the server will listen on (Default: 4730)
-l LEVEL  --logger=LEVEL  Specifies the logging level (Default: 0)
-v        --version       Display the version of java gearman service and exit
-?        --help          Print this help menu and exit

java/nio/channels/CompletionHandler
java-gearman-service-0.5
usage:java [jvm options] -jar java-gearman-service-0.5.jar [server options]
Options:   -p PORT   --port=PORT     Defines what port number the server will listen on (Default: 4730)   -l LEVEL  --logger=LEVEL  Specifies the logging level (Default: 0)   -v        --version       Display the version of java gearman service and exit   -?        --help          Print this help menu and exit

费了好大劲才意识到这个问题出在哪儿。这还是在我将这个包导入到eclipse的时候发现的,发现源码里竟然有错误,这怎么可能的。经查找,发现是由于jdk版本的问题。我本地机器上装的是jdk1.6(对应的java6),而gearman的server需要jdk1.7(对应java7)才能运行。于是立即下载新版本的java运行。结果这次倒是不会出现这个问题了,但是新的问题出现了。这次报的错误是:

 

/usr/local/jdk1.7.0_01/bin/java -jar java-gearman-service-0.5.jar

Error: dl failure on line 875

Error: failed /usr/local/jdk1.7.0_01/jre/lib/i386/server/libjvm.so, because /usr/local/jdk1.7.0_01/jre/lib/i386/server/libjvm.so: cannot restore segment prot after reloc: Permission denied

 

 

经网上搜索,得到是因为SELINUX的问题。有兴趣的可以去网上查一下这个。解决问题的步骤如下:

首先编辑配置文件:/etc/selinux/config

找到如下内容:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
# SELINUX=enforcing

将# SELINUX=enforcing的注释去掉,并在下边增加这样一行:SELINUX=disabled

保存退出,结果还是报相同的错误。然后运行如下命令:

chcon -t texrel_shlib_t /usr/local/jdk1.7.0_01/jre/lib/i386/server/libjvm.so

注意,错误提示中提示哪个文件出错就在后边写上哪个文件。

结果终于可以正常运行了。但是在编译一个java的gearman的cllient的时候还是提示这个错误。于是运行如下命令:

/usr/sbin/setenforce 0

分享到:
评论

相关推荐

    jre-7u5-linux-i586.tar.gz

    error :/usr/lib/libjvm.so: cannot restore segment prot after reloc: Permission denied . use the command: chcon -t textrel_shlib_t /usr/lib/libjvm.so 这是官方的提示 简单的做法是 setenforce 0 ok,java...

    Linux 5.5 +oracle 11gR2 sqlplus error

    具体错误信息为:“sqlplus:error while loading shared libraries:/u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1:cannot restore segment prot after reloc: Permission denied”。本篇文章将...

    linux错误乱码的具体解决方法

    最后,文章提到了安装 Zend Server CE for Linux 时遇到的问题,即`cannot restore segment prot after reloc: permission denied`错误。这通常与SELinux策略有关。有两种解决方法:一是临时关闭SELinux(风险较高)...

    sqlplus libclntsh.so.11.1 Permission denied 解决方法

    在尝试运行 SQL Plus 工具时,可能会遇到一个错误提示:“cannot restore segment prot after reloc: Permission denied”,这通常发生在尝试加载 Oracle 的客户端库 `libclntsh.so.11.1` 时。此错误表明系统拒绝了...

    fedora校园上网指导

    4. 如果出现“./xrgsu: error while loading shared libraries: /usr/lib/libpcap.so.0.6.2: cannot restore segment prot after reloc: Permission denied”的问题,需要编辑/etc/sysconfig/selinux文件,将...

    linux安装myeclipse教程

    如文档中提到的“cannot restore segment prot after reloc: Permission denied”错误,就是由于Linux的安全策略SELinux阻止了JVM加载必要的库文件。通过使用`chcon`命令改变文件的安全上下文,可以解决这类权限问题...

    Oracle11g客户端安装与配置(在Linux系统上).pdf

    - 如果出现“sqlplus: error while loading shared libraries: /usr/local/oracle/libnnz11.so: cannot restore segment prot after reloc: Permission denied”的错误,可以尝试将SELinux设置为Permissive模式: ...

    webstorm linux5上安装失败

    - 如果出现权限错误,例如 “cannot restore segment prot after reloc: Permission denied”,则需要进一步调整 SELinux 设置。 ##### 步骤 3: 配置 SELinux 1. **编辑 SELinux 配置文件**: - 使用文本编辑器...

    Hadoop学习文档

    - **问题描述**: 安装完成后,可能会遇到权限相关的问题,例如`cannot restore segment prot after reloc: Permission denied`。 - **解决方案**: 1. 编辑`/etc/selinux/config`文件,将`SELINUX=enforcing`修改为`...

    freeradius mysql搭建

    - 如果启动失败并提示权限问题,如`error while loading shared libraries: cannot restore segment prot after reloc: Permission denied`,则需要修改SELinux配置。具体操作为将`/etc/selinux/config`文件中的`...

Global site tag (gtag.js) - Google Analytics