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

3
我需要在Java(>=1.5; ProcessBuilder)中执行和终止/中止不同的shell脚本。使用标准的Java机制,我只能杀死用于shell脚本执行的主进程。当这个shell脚本启动其他进程(例如./foo.sh &; ./bar.sh &)时,当我在Java内部终止/中止主shell脚本进程时,这些进程仍在运行。
如何从Java内部跟踪所有新子/子进程的所有ID?有没有可能这样做?或者在*nix-和Win-OSes中是否可能找到一个已知进程产生的所有进程?
谢谢, 托马斯
1个回答

1
如果您可以控制不同脚本,您可以将它们的子进程PID(使用$!查找上次运行的后台进程的PID)传递回主Java程序。这似乎是一种相当干净的方式,可以为您提供所需的内容。
否则,这似乎非常有前途

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接