Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中可靠地终止进程_Java - Fatal编程技术网

在Java中可靠地终止进程

在Java中可靠地终止进程,java,Java,一点背景知识 我为Java维护了一个数据库。主进程启动包含程序自动修改版本的子进程 这可能导致子进程中的代码陷入无限循环、内存不足或以多种方式崩溃 当系统检测到发生这种情况时,主进程使用process.destroy杀死子进程并恢复分析 早期版本使用System.exit从内部关闭子进程,但我改为使用process.destroy从主进程杀死子进程,因为这样更健壮 我现在收到一个bug报告,当代码使用spring的DefaultMessageListenerContainer时,在某些情况下(尚

一点背景知识

我为Java维护了一个数据库。主进程启动包含程序自动修改版本的子进程

这可能导致子进程中的代码陷入无限循环、内存不足或以多种方式崩溃

当系统检测到发生这种情况时,主进程使用process.destroy杀死子进程并恢复分析

早期版本使用System.exit从内部关闭子进程,但我改为使用process.destroy从主进程杀死子进程,因为这样更健壮

我现在收到一个bug报告,当代码使用spring的DefaultMessageListenerContainer时,在某些情况下(尚未复制),子进程无法完全关闭

我假设这个问题在某种程度上与阻塞io有关,并且进程进入需要kill-9的状态

实际问题


所以问题是,在java中,有没有比process.destroy更可靠的、与平台无关的方法来杀死一个进程?

您总是可以使用JNAA这个非常类似的问题,并给出可能有用的好答案。