मैं पाइथन के paramiko मॉड्यूल का उपयोग कर एक दूरस्थ मशीन पर tail -f logfile
कमांड चलाने के लिए चाहता हूँ। मैं इसे निम्नलिखित फैशन में अब तक के प्रयास में किया गया है:पाइथन paramiko मॉड्यूल में लंबे समय से चल रहे एसएसएच कमांड (और उन्हें कैसे समाप्त करें)
interface = paramiko.SSHClient()
#snip the connection setup portion
stdin, stdout, stderr = interface.exec_command("tail -f logfile")
#snip into threaded loop
print stdout.readline()
मैं जब तक आवश्यक चलाने के लिए आदेश चाहते हैं, लेकिन मैं 2 समस्या है:
- मैं यह कैसे रोक सकता हूं सफाई से? मैंने चैनल बनाने और चैनल पर
shutdown()
कमांड का उपयोग करने के बारे में सोचा था जब मैं इसके माध्यम से हूं- लेकिन यह गन्दा लगता है। क्या चैनल के stdin परCtrl-C
भेजा गया कुछ ऐसा करना संभव है? readline()
ब्लॉक, और अगर मैं आउटपुट प्राप्त करने की गैर-अवरुद्ध विधि था तो मैं थ्रेड से बच सकता था- कोई विचार?
नफरत बुरी खबर को तोड़ने के लिए है, लेकिन SSHClient() पहले से ही आंतरिक रूप से धागे का उपयोग करता है। – joeforker