jvm零星分叉重复的孩子

时间:2015-09-22 14:46:18

标签: java jvm

我有一个java应用程序正在使用子JVM来执行某些操作。子进程看起来像父进程一样,包括所有参数。

要确认父母,我验证了父ID及其始终原始的JVM。

应用程序作为普通的java进程运行,即不在任何服务器如apache,weblogic等中运行。 由于进程具有相同的args,因此两者都写入相同的日志文件,而打开的文件也相同。

这是以前没有出现的新行为。有人可以提供关于检查原因的线索

JVM版本: - OpenJDK运行时环境(IcedTea 2.5.6)(7u79-2.5.6-0ubuntu1.14.04.1) 操作系统:Ubuntu 14.04

2 个答案:

答案 0 :(得分:0)

一种可能性是明确调用Runtime exec方法。

如下所示:

Process process = Runtime.getRuntime ().exec("java -jar myApp.jar");

这将创建主进程的新进程子进程。

这可以显式地完成(使用前面的代码)或者隐式调用一些外部库,例如根据某个配置文件启动一个新进程。

答案 1 :(得分:0)

我们通过Processbuilder调用tar,它在forkAndExec上挂起了。 Fork是成功的,所以可以看到java进程但不是exec。由于大量的磁盘操作,它在关闭系统调用时会挂起很长时间。