के बीच पाइथन पाइपिंग आउटपुट मैं कुछ कोड पर काम कर रहा हूं जो एसएसएच पर एक ब्लॉक डिवाइस डीडी करेगा, और मैं इसे सबप्रोसेस के साथ करना चाहता हूं ताकि मैं स्थानांतरण के दौरान डीडी की स्थिति की निगरानी कर सकूं (हत्या एसआईजीयूएसआर 1 के साथ डीडी प्रक्रिया को वर्तमान स्थिति प्राप्त करने के लिए, और चयन का उपयोग करके पढ़ना)।दो subprocesses
आदेश है कि मैं लागू करने के लिए कुछ इस तरह होगा कोशिश कर रहा हूँ:
dd if=/dev/sda | ssh [email protected] 'dd of=/dev/sda'
वर्तमान पद्धति मैंने कोशिश की थी:
dd_process = subprocess.Popen(['dd','if=/dev/sda'],0,None,None,subprocess.PIPE, subprocess.PIPE)
ssh_process = subprocess.Popen(['ssh','[email protected]','dd of=/dev/sda'],0,None,dd_process.stdout)
लेकिन जब मैं इस चलाने के लिए, SSH प्रक्रिया हो जाता है 10-40 सेकंड के बाद निष्क्रिय।
क्या मैं पूरी तरह से यहां जा रहा हूं, या इस तरह के उपप्रजातियों के बीच पाइप करने का कोई तरीका नहीं है?
संपादित करें: मेरे असली कोड को चालू करने में होस्टनाम नहीं था। चीजों को करने का यह सही तरीका है।
मुझे आशा है कि आप कुंजी आधारित प्रमाणीकरण या अन्य गैर-सहभागी प्रणाली का उपयोग कर रहे हैं। –
जाहिर है;) मैंने बस –
उदाहरण को संक्षिप्त करने के लिए उस एसएसएच तर्क को लिया है: [मैं पाइप द्वारा एकाधिक प्रक्रियाओं को जोड़ने के लिए उपप्रोसेस.पोपेन का उपयोग कैसे करूं?] (Http://stackoverflow.com/q/295459/4279) – jfs