跟踪子/子进程的进程ID?

时间:2009-12-07 17:40:17

标签: java linux build-process operating-system

我需要从Java内部执行和终止/中止不同的shell脚本(> = 1.5; ProcessBuilder)。使用标准的java机制,我只能杀死用于shell脚本执行的主进程。当这个shell脚本启动其他进程(例如./foo.sh& amp ;; ./bar.sh&)时,当我终止/中止Java中的主shell脚本进程时,仍有进程在运行。

如何从Java内部跟踪所有新的子/子进程中的所有ID?有没有可行的方法来做到这一点?或者是否可以(在* nix-和Win-OSes中)查找由一个已知​​流程生成的所有流程?

谢谢, 托马斯

1 个答案:

答案 0 :(得分:1)

如果您可以控制不同的脚本,则可以将其子项的PID(使用$!查找上次运行后台进程的PID)传递回主Java程序。 这似乎是一种相当干净的方式,可以满足您的需求。

否则,this seems rather promising