java 在常见的 chroot 中运行良好。
但是在 grsec 强化 chroot 中,它抱怨没有足够的内存来构建 VM。
关于如何让它运行的任何想法,因为我确实需要一个强化的 chroot。
谢谢。
答案1
通常来说,Java 与 grsec 配合得很好。
然而,grsec 中有一个选项可能会对 Java 造成不利影响。
看来您已经在内核中启用了该选项。
检查一下:
[*] Grsecurity
Customize Configuration --->
PaX --->
Miscellaneous hardening features --->
[ ] Sanitize all freed memory
确保Sanitize all freed memory
选项被禁用,重新编译内核(IMO 它不能通过 sysctl 进行管理)并重试。
答案2
您应该提供更多详细信息:错误消息的确切文本、您正在使用的 JVM 等等。
我在 32 位 Gentoo Hardened (也是 grsec,但没有 chroot) 上运行 java 时遇到了类似的问题:https://bugs.gentoo.org/show_bug.cgi?id=344135
您可以尝试通过将 jvm.cfg 更改为使用“客户端”而不是“服务器”来解决此问题,例如:
[jvm.cfg.patch]
--client IF_SERVER_CLASS -server
--server KNOWN
+-client KNOWN
您还可以尝试使用 -client 和/或 -Xmx256m 选项运行 java。