stdin को सुन मैं एक जावा प्रोग्राम है जो उपयोगकर्ता द्वारा प्रवेश करती 0 यह बाहर निकलने चाहिए बनाने के लिए किया है। जावा कोड में कोई समस्या नहीं लिख रही है।पृष्ठभूमि प्रक्रिया
int cmd = read();
System.out.println("got command : " + cmd);
if (cmd == 48) { // ASCII code for 0
System.exit(0);
मैं इस प्रक्रिया को लिनक्स में स्टार्ट-स्टॉप स्क्रिप्ट का उपयोग करना चाहता हूं। मैं भी कि &
या nohup
case "$1" in
'start')
if [ -f myfifo ]; then
rm myfifo
fi
mkfifo myfifo
cat > myfifo &
echo $! > myfifo-cat-pid
java -jar myjar.jar >/dev/null 2>&1 0<myfifo &
echo "Started process: "$!
;;
'stop')
echo 0 > myfifo
echo "Stopped process: "
rm myfifo
;;
esac
मेरे समस्या का उपयोग कर के रूप में जल्द मैं इस प्रक्रिया को यह इनपुट पढ़ने -1 चलाने के रूप में है ऐसा करने में सक्षम किया जा रहा हूँ। जबकि मैं stdinput से पढ़ना चाहता हूं, जब कुछ इसे स्पष्ट रूप से प्रतिबिंबित किया जाता है यानी स्टॉप कहा जाता है। बस मुझे शैल स्क्रिप्ट द्वारा स्पष्ट रूप से बंद करने के लिए एक प्रोग्राम की आवश्यकता है। मैंने कड़ी मेहनत की है। मेरी मदद करो।
संपादित करें:
मैं सिर्फ कार्यक्रम बंद करने के लिए जब उपयोगकर्ता प्रेस क्ष या किसी ऐसी घटना और न कोड में अनंत लूप चाहते हैं। अन्य घटनाओं को सुनने जैसी कोई अन्य दृष्टिकोण भी यदि संभव हो तो भी मदद करेगी। मेरा कोड घटना के लिए मतदान नहीं होना चाहिए। मैंने Jnotify
की कोशिश की है जो एक निर्देशिका देखता है और उस फ़ाइल में फ़ाइल बनाई या हटाए जाने पर एक ईवेंट उत्पन्न करता है। लेकिन मुश्किल भाग्य वे SunOS के लिए समर्थन नहीं है। :(
आप मूल्य कैसे पढ़ते हैं? System.in.read() का उपयोग कर – poussma
; इसके अलावा मैं BufferReader –
हम का उपयोग कर इसे करने की कोशिश की है ... क्या आप वाकई myfifo मौजूद है और वहाँ में कुछ भी होता है? System.in.read() ठीक काम करने के लिए है ... 'mkfifo' क्या करता है? – poussma