जब मैं sbt से चलाए जा रहे एप्लिकेशन के मुख्य लूप पर नियंत्रण रखता हूं तो मुझे निम्नलिखित उपयोगी मिल गया है।
मैं आवेदन चलाते समय sbt को फोर्क में बताता हूं (बिल्ड.sbt में):
fork in run := true
मैं sbt को sbt शेल से अनुप्रयोग के आगे फॉरवर्ड (बिल्ड.sbt में) भी बताता हूं:
connectInput in run := true
अंत में, आवेदन के मुख्य सूत्र में, मैं स्टड पर एंड-ऑफ-फ़ाइल की प्रतीक्षा करता हूं और फिर JVM को बंद करता हूं:
while (System.in.read() != -1) {}
logger.warn("Received end-of-file on stdin. Exiting")
// optional shutdown code here
System.exit(0)
बेशक, आप स्टडिन और शटडाउन को पढ़ने के लिए किसी भी धागे का उपयोग कर सकते हैं, न कि केवल मुख्य धागा।
अंत में, sbt शुरू करें, वैकल्पिक रूप से उस सबप्रोजेक्ट पर स्विच करें जिसे आप चलाना, चलाना चाहते हैं।
अब, जब आप इस प्रक्रिया को रोकना चाहते हैं, तो sbt शेल में CTRL-D लिखकर इसकी स्टड को बंद करें।
Ctrl+D
काम नहीं करता।