当 java 进程被终止时,java 调用的 shell 脚本是否被终止?

Does shell script invoked by java get killed when the java process is killed?

我对进程终止有一些疑问。我的用例是

  1. Java 流程通过 Process Builder
  2. 调用 shell 脚本流程
  3. shell 脚本调用新进程 x

java 中的 process.destroy() 是否也会与 shell 脚本一起终止进程 x?

当 x 为 运行 时 Java 进程被杀死会发生什么? shell 脚本进程和进程 x 是否都被杀死?

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

两个进程可以知道彼此的id,但它们之间没有硬性link。

一般情况下,当一个进程被杀死时,它的子进程会发生什么取决于平台,所以不能保证当你杀死一个从 java 创建的进程时,该进程的子进程也会被杀死。此外,您的程序在不同的操作系统上可能会有不同的行为。