cannot restore segment prot after reloc: Permission denied

最近把一个java项目从windows平台部署到linux下,安装测试时遇见了cannot restore segment prot after reloc: Permission denied 这个问题。

最近用到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

然后到网上找了一下问题,发现是SELinux的问题,那么就得解决它了。

方法一:

找到/etc/sysconfig/selinux,编辑SELINUX属性默认为(SELINUX=enforcing)改成SELINUX=disabled。如果已经是disabled就不用改了,也可以注释SELINUX=enforcing,新添加一行SELINUX=disabled。保存退出。然后继续调试,如果还是出现这样的问题就用方法二。

方法二:

 代码如下 复制代码
chcon -t texrel_shlib_t
如: chcon -t texrel_shlib_t /路径/名字.so

方法三:

解决问题的步骤如下:

首先编辑配置文件:/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

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

我自己的问题是

修改/etc/profile文件最后一行加入

JAVA_HOME=jdk路径

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export PATH JAVA_HOME CLASSPATH

解决的办法是在root用户下,修改/etc/selinux/config 文件,

 代码如下 复制代码

把SELINUX=enforcing 改成 SELINUX=disabled。 

然后,保存关闭,重启机器就可以了。

 

加上这个就能解决这个问题了,我先用方法一结果不奏效然后再GG搜索了下,在SELinux被disable的情况下然后执行这个命令,肯定能解决这个问题。

 

时间: 2024-12-02 13:36:29

cannot restore segment prot after reloc: Permission denied的相关文章

cannot restore segment prot after reloc: Permission denied解决办法

方法一: 禁止掉SELinux 找到/etc/sysconfig/selinux,编辑SELINUX属性默认为(SELINUX=enforcing)改成SELINUX=disabled.如果已经是disabled就不用改了,也可以注释SELINUX=enforcing,新添加一行SELINUX=disabled.保存退出.然后继续调试,如果还是出现这样的问题就用方法二. 具体操作方法 编辑/etc/selinux/config,找到这段: # This file controls the sta

DBCA error while loading shared libraries: cannot restore segment prot after reloc [ID 956792.1]

DBCA error while loading shared libraries: cannot restore segment prot after reloc [ID 956792.1]   修改时间 29-JUN-2010类型 HOWTO 状态 PUBLISHED   In this DocumentGoalSolution Applies to: Oracle Server - Enterprise Edition - Version: 10.2.0.1 and later [Rele

sqlplus时报Linux-x86_64 Error: 13: Permission denied

在本机上非oracle用户运行sqlplus时,报以下错误:[cpdds@node1 ~]$ sqlplus cpdds_pdata/cpdds_pdata SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 4月 27 13:43:16 2012 Copyright (c) 1982, 2007, Oracle.  All Rights Reserved. ERROR: ORA-01034: ORACLE not available ORA-271

FTP 550 Permission denied 只能建文件夹,没法删除及上传文件的原因说明_FTP服务器

出现这种问题, ①首先检查用户对应的角色名,然后看路径设置是否正确,有没有相关的权限,如果这些都没问题,然后就尝试下面的操作: ②重起FTP服务,最好从服务里面重启(不能根本解决): ③重新设置Server-U帐号和目录访问里的文件路径(如果还不行,尝试下面操作): ④删除用户,重新建. 原创 SU整理(FTP)收藏 整理如下: 1开头-成功 2开头-成功 3开头-权限问题 4开头-文件问题 5开头-服务器问题 150 FILE: %s 150 Opening %s mode data conn

oracle监听器启动错误-TNS-12546: TNS:permission denied

今天一台数据库服务器登录不上,报TNS-12541: TNS:no listener 到服务器上看下监听器状态 oracle@linux-34:~> lsnrctl status LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 14-OCT-2011 09:12:37 Copyright (c) 1991, 2007, Oracle. All rights reserved. Connecting to (DESCRIPTION=(AD

NFS挂载远程目录后访问提示“Permission denied”

下午访问一台新部署的web,打开一个商家主页,图片都不能正常显示.上服务器进入相关目录,提示权限拒绝.因为图片都是存在一台专门的服务器,web机都是通过nfs访问图片资源.所以应该是nfs权限的问题导致. 关于权限问题,一般都是nfs server的/etc/exports文件没有设置好导致的.查看文件 [admin@nfsserver ~]# cat /etc/exports /home/www/images 192.168.0.37(rw,sync,anonuid=497,anongid=4

php include提示failed to open stream: Permission denied in错误

  出现failed to open stream: Permission denied in是apache运行用户没用权限去访问指定的文件了,所以导致目录文件打不开了. 在打开浏览器时提示 Warning: include (/global.php) [function.include]: failed to open stream: Permission denied in index.php on line 21 Warning: include() [function.include]:

qnx-QNX /ect/passwd permission denied

问题描述 QNX /ect/passwd permission denied 我用的虚拟机运行的qnx.用的root登陆的,为什么访问不了啊...新手.求解.. 解决方案 sudo /etc/passwd 用sudo提权. 解决方案二: 额,首先上面提示的问题有两种,一种是文件或者目录不存在,另外是没有权限. 解决方案三:

三星A7100文件写入失败(Permission denied)

问题描述 三星A7100文件写入失败(Permission denied) 1C 如题,三星A7100文件写入失败:java.io.FileNotFoundException: /storage/emulated/0/abc.apk: open failed: EACCES (Permission denied),做自动更新从服务器下载apk存储到手机上,其他两台真机都能存储成功,唯独三星A7100这台不行,不懂为什么,求大神帮助.权限都加了 源码:public class UpdateMang