我正在排除服务器上大型 Java 程序的故障。但是,我能够使用仅输出 LD_PRELOAD 的环境变量值的超级基本 Java 程序重现该问题。bash 脚本设置变量(export LD_PRELOAD=....),然后运行基本 Java 程序,输出显示尚未设置该值。因此,我们尝试排除故障的大型 Java 程序崩溃了。平台是 RHEL 7.5。有人知道是否存在一些安全设置可以阻止系统变量被 jvm 使用吗?我已尝试过多个其他系统,包括另一个 RHEL 7.5 系统,但没有发现问题。这使我相信这是该服务器上的配置不同。
答案1
对于任何感兴趣的人,我们发现了这个问题……防病毒软件 Cylance 阻止了 LD_PRELOAD 的设置,以此作为防止劫持库加载过程的方法。如果其他人也遇到过类似的事情,我希望这对你有所帮助。干杯!