ich habe ein kleines Problem beim Zugriff auf die Standardfiledeskriptoren.
In meinem Programm soll eine SSH Verbindung aufgebaut werden und ein " /bin/sh ausgeführt werden. Diese soll später mit "Messages" gefüttert werden und mir den Output ausgeben!
Ich würde als erstes gerne prüfen ob der connect erfolgreich war, sprich der "stderr" leer ist. Hier entsteht jedoch das erste Problem. Da wenn ich einen "read" auf den stderr anwende dieser ja Blockierend ist!
Hier mal mein Code:
Code: Alles auswählen
def check_remote_ssh(paramter):
print "Check remote SSH function started"
host = "aragorn"
shell = " /bin/sh"
message = "id; exit"
stdin,stdout,stderr = os.popen3('ssh ' + host + shell)
stdout_nr = sys.stderr.fileno()
#stderr pruefen
error = stderr.read()
if error != "":
print error
else:
pass
stdin.write(message + "\n")
stdin.flush()
out = stdout.read()
print out
Ich will eigentlich zu erst prüfen, ob ich eben eine Shell problemlos bekommen habe, denn wenn nicht soll des ganze Programm terminieren!
Ich habe es mal mit "subprocess" probiert, bin da aber nicht wirklich auf eine Lösung gekommen?
Hat da jemand eine Idee? Bin für jede Hilfe dankbar!
Gruss Flo