chroot 後に execlp (java) を呼び出す際に問題があります。
java プログラムは /usr/lib/jvm/default-java/jre/bin/java にインストールされます。
そして、実際のルートに到達できず、chroot(".") の後で Java プログラムを実行できません。
javaがインストールされているディレクトリ。
これが私の簡単なコードです。
int pid = fork();
if(pid == 0)
{
chroot(".");
execlp("java","java","test", NULL); // cant run "test" java program
}
else{
wait4(..............);
}
chroot を削除すると、問題なく動作します。
問題は、「java」が /usr/lib/....... にあることです。
chroot を使用すると、実際のルートと Java に到達できません。
chroot と Java を一緒に使用するソリューションはありませんか??