スポンサーリンク

2015年12月22日火曜日

java の実行エラーの原因が SELinux である場合の対処

 java で作られたプログラムを実行したときに以下のエラーが出た。環境は CentOS 5.5。

Error: dl failure on line 863
Error: failed /opt/jdk1.7.0_79/jre/lib/i386/client/libjvm.so, because /opt/jdk1.7.0_79/jre/lib/i386/client/libjvm.so: cannot restore segment prot after reloc: Permission denied

 原因は SELinux。実際に機能を落としてみるとちゃんと実行される。

# setenforce 0

 SELinux 自体の機能は生かしたまま java を実行したい場合、Permission denied と出ているライブラリに対してコンテキストの変更を行う必要がある。

# chcon -t textrel_shlib_t /opt/jdk1.7.0_79/jre/lib/i386/client/libjvm.so

 ライブラリに対してのパスは適宜読み替えを。

0 件のコメント:

コメントを投稿