आप Process.spawn
और Process.wait2
उपयोग कर सकते हैं:
pid = Process.spawn 'your.exe', '--option'
# Later...
pid, status = Process.wait2 pid
आपका कार्यक्रम दुभाषिया का एक बच्चा प्रक्रिया के रूप में क्रियान्वित की जाएगी। इसके अलावा, यह व्यवहार करेगा जैसे कि इसे कमांड लाइन से बुलाया गया था।
तुम भी Open3.popen3
उपयोग कर सकते हैं:
require 'open3'
*streams, thread = Open3.popen3 'your.exe', '--option'
# Later...
streams.each &:close
status = thread.value
मुख्य यहाँ अंतर यह है कि आप तीन IO
वस्तुओं तक पहुँच प्राप्त है। प्रक्रिया के मानक इनपुट, आउटपुट और त्रुटि धाराओं को उस क्रम में, उन्हें पुनर्निर्देशित किया जाता है।
यदि आप प्रोग्राम के आउटपुट का उपभोग करना चाहते हैं, या इसके मानक इनपुट स्ट्रीम के माध्यम से इसके साथ संवाद करना चाहते हैं तो यह बहुत अच्छा है। सामान्य रूप से टर्मिनल पर मुद्रित पाठ को आपकी स्क्रिप्ट पर उपलब्ध कराया जाएगा।
आपको एक थ्रेड भी मिलता है जो प्रोग्राम को निष्पादित करने के लिए इंतजार करेगा, जो सुविधाजनक और सहज है।
स्रोत
2012-04-10 17:36:22