我正在处理一个程序,进行了一些更改,并将Java从Java 6更新到Java 7。
我在CentOS 5.8 32位虚拟机上运行该程序。
在Java更新之前,它可以正常工作。
现在进程启动时出现错误:
[root@CentOS-58-i-0 bin]# ./agent.sh start
Starting Agent.....d. running (23442).
Error: dl failure on line 864
Error: failed /agent/jre/lib/i386/client/libjvm.so,
because /agent/jre/lib/i386/client/libjvm.so:
cannot restore segment prot after reloc: Permission denied
我已经查阅了网上的资料,对于此问题的解决方法/临时方案是运行以下命令:
setenforce 0
并且它会起作用。
阅读有关setenforce
命令的文档时,我不理解它的作用以及它如何解决问题。
所以我的问题是:
- 什么原因导致了阻止我启动进程的错误?
setenforce
命令为什么能够解决这个问题?- 请简要说明一下
setenforce
通常的作用。
semanage fcontext -a -t textrel_shlib_t /agent/jre/lib/i386/client/libjvm.so
可能会永久改变安全上下文,虽然我不是很确定。 - dmg