java - Stopping a program if the next process in the pipeline was stopped -
जब मैं निम्नलिखित पाइपलाइन चला रहा हूं:
cat my_large_file.txt | सिर | Wc
प्रक्रिया लगभग तुरंत बंद हो जाती है। ठीक है।
लेकिन जब मैं अपना जावा प्रोग्राम चलाता हूँ
java MyProgramReadALargeFile my_large_file.txt | सिर | Wc
'wc' से आउटपुट को stdout
पर मुद्रित किया गया है लेकिन जावा प्रोग्राम अभी भी चल रहा है यह कैसे पता लगा सकता है कि पाइपलाइन बंद हो गया था?
अधिकांश यूनिक्स उपयोगिताएं ध्यान देती हैं, जो प्राप्त होने पर, इंगित करता है कि एक पाइप स्ट्रीम जिसकी प्रक्रिया लिख रही है, उसे दूसरे छोर पर कुछ भी नहीं सुनना है, इसलिए काम करने की कोई आवश्यकता नहीं है।
"जावा पॉज़िक्स सिग्नल" जैसी कुछ चीज़ों की खोज से कुछ लाइब्रेरी उत्पन्न होती हैं जो आपको अनुमति दे सकती हैं अपने जावा कोड में सिग्नल हैंडलर्स को जोड़ने के लिए।
Comments
Post a Comment