Отслеживать идентификаторы процессов дочерних / дочерних процессов? - PullRequest
3 голосов
/ 07 декабря 2009

Мне нужно выполнить и завершить / прервать различные сценарии оболочки изнутри Java (> = 1,5; ProcessBuilder). Со стандартными механизмами Java я могу уничтожить только основной процесс, используемый для выполнения сценария оболочки. Когда этот сценарий оболочки запускает другие процессы (например ./foo.sh &; ./bar.sh &), тогда все еще выполняются процессы, когда я завершаю / прекращаю основной процесс сценария оболочки внутри Java.

Как я могу отслеживать все идентификаторы из всех новых дочерних / дочерних процессов изнутри Java? Есть ли способ сделать это? Или возможно (в * nix- и Win-OS) найти все процессы, созданные одним известным процессом?

Спасибо, Томас

1 Ответ

1 голос
/ 21 декабря 2009

Если у вас есть контроль над различными сценариями, вы можете передать PID их дочерних элементов (используйте $!, Чтобы найти PID последнего запуска фонового процесса) обратно в основную программу Java. Это кажется довольно чистым способом дать вам то, что вам нужно.

В противном случае, это выглядит довольно многообещающе .

...