在没有安装** / proc的chroot **中运行java应用程序

时间:2016-04-19 16:20:16

标签: java chroot

我试图在没有挂载/ proc的chroot环境中构建一个java应用程序(调用javac)。在吐出以下警告后,Javac挂起:

Java HotSpot(TM)64位服务器VM警告:无法检测到初始线程堆栈位置 - find_vma失败

我不知道这个警告是否与悬挂相关,但是它一直被记录下来。我查看了jvm源代码,我可以理解这个警告是什么(在尝试查找主线程的堆栈基础时,/ proc / self / maps不可用)。

应该注意的是,有时我会发生崩溃而不是悬挂,但它大部分时间都会挂起。

我想知道是否有人让java工作没有 / proc挂载。所有可用的文献都建议安装/ proc。

1 个答案:

答案 0 :(得分:0)

我认为通常你会希望在你的chroot环境中安装/ proc ...通常在Linux / proc中用于过程信息和有关各种过程有用的系统信息。 JVM做了很多" Magical"事情因为它也是一个虚拟机,所以它需要大量关于流程和事情的信息,所以如果没有proc就行不通,这并不奇怪。

从我读过的关于OpenJDK的JVM如何工作的内容来看,对于Unix(类似)系统,他们使用procfs来获取信息。所以它似乎是强制性的。

您认为自己不想要/ proc是否有理由?