2016-09-15 54 views
2

我对过程终止有一些疑问。我的使用情况是这样的,当Java进程被终止时,java调用的shell脚本是否会被终止?

  1. Java的过程中,通过进程生成
  2. shell脚本调用一个新的进程X

是否process.destroy()在Java中也杀调用一个shell脚本程序与shell脚本一起处理x?

当x进程中Java进程被终止时会发生什么? shell脚本进程和进程x都被杀死了吗?

回答

3

子进程与父进程之间没有联系。

两个进程都可以知道对方的id,但是它们之间没有硬连接。

通常,一个进程的子进程在被杀死时会受到平台的依赖,所以不保证当你杀死一个由java创建的进程时,该进程的子进程也会被杀死。另外你的程序可以在不同的操作系统上有不同的行为。

+0

因此,可能只有Java进程被杀死,但脚本在很少情况下(基于操作系统)...是这样吗? – lsof

+0

是的,这取决于操作系统如何处理杀死进程。 –

+0

那么我们怎么能杀死像Java这样的其他进程调用的进程(如shell脚本)。 – lsof

相关问题