Tôi có một chương trình java chạy chương trình (Python) khác như một quá trình.Chấm dứt quá trình chạy với `exec` khi chương trình chấm dứt
Process p = Runtime.getRuntime().exec("program.py", envp);
Nếu chương trình java kết thúc quá trình xử lý, quá trình Python cũng kết thúc. Lệnh finish
gửi tín hiệu đến quy trình Python để đóng nó.
Trong tình hình bình thường quá trình này được đóng theo cách này:
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
output.write("@EOF\n");
output.flush();
Tuy nhiên, khi bị treo chương trình java, quá trình này không được đóng lại. Lệnh đóng không được gửi do sự cố. Có thể chấm dứt quá trình tự động mỗi khi chương trình kết thúc?
Tôi cũng thực sự quan tâm đến câu trả lời cho câu hỏi này. Mặc dù tôi không thể cung cấp nó, bạn có nhớ chia sẻ lý do tại sao chương trình Java của bạn bị lỗi không? – Vinay
Để câu hỏi này có thể trả lời được, bạn cần cung cấp thêm thông tin. Ví dụ: bạn có tự do sửa đổi các nguồn của một trong hai hoặc cả hai chương trình Java và Python? –
Tôi sẽ không đồng ý với Vinay (haha cùng tên). Tôi thực sự đang tìm kiếm nó ngay bây giờ, nhưng tôi nghĩ rằng một cái gì đó dọc theo dòng chạy mà python Quy trình chỉ trong khi hiện tại Java Process ID đang chạy sẽ làm các trick. Không chắc tôi có đi đúng hướng hay không, nhưng câu hỏi này thực sự khiến tôi tò mò. – Vinay