Завершить выполнение процесса с помощью ʻexec`, когда программа завершится

У меня есть программа на Java, которая запускает другую программу (Python) как процесс.

Process p = Runtime.getRuntime().exec("program.py", envp);

Если java-программа завершает обработку, завершается и процесс Python. Команда finish отправляет сигнал процессу Python закрыть его.

В нормальной ситуации процесс закрывается следующим образом:

BufferedWriter output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
output.write("@EOF\n");
output.flush();

Однако, когда Java-программа дает сбой, процесс не закрывается. Команда закрытия не отправляется из-за сбоя. Можно ли автоматически завершать процесс каждый раз, когда программа завершается?

7
задан Andrew Thompson 4 July 2012 в 05:38
поделиться