Tengo un programa Java que ejecuta otro programa (Python) como un proceso.Terminar el proceso ejecutado con `exec` cuando el programa finaliza
Process p = Runtime.getRuntime().exec("program.py", envp);
Si el procesado de acabado programa Java, Python el proceso está terminado así. El comando finish
envía una señal al proceso de Python para cerrarlo.
En situación normal el proceso se cierra de esta manera:
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
output.write("@EOF\n");
output.flush();
Sin embargo, cuando se bloquea el programa Java, el proceso no es cerrado. El comando de cierre no se envía debido al bloqueo. ¿Es posible finalizar el proceso automáticamente cada vez que finaliza el programa?
Estoy realmente interesado en la respuesta a esta pregunta también. Aunque no puedo ofrecerlo, ¿te importa compartir por qué tu programa Java está fallando? – Vinay
Para que esta pregunta sea responsable, debe proporcionar más información. Por ejemplo: ¿puede modificar las fuentes de uno o ambos programas Java y Python? –
Tendría que estar en desacuerdo con Vinay (jaja mismo nombre). De hecho, lo estoy buscando ahora mismo, pero creo que algo así como ejecutar ese proceso de python solo mientras se está ejecutando la actual identificación de proceso de Java sería el truco. No estoy seguro si estoy en el camino correcto, pero esta pregunta realmente me intriga. – Vinay