2017-01-18 3 views
0

Hier ist der Python-Code, den ich aus Paramiko-Shell-Paket verwenden, ist der Rückgabewert r 7 statt . Allerdings, wenn ich den gleichen Befehl in Remote-Shell laufen, und echo $?, gibt es 0Warum ist der Rückgabewert von stdout.channel.recv_exit_status '7' anstelle von '0'

cmd = "curl --fail -s \"http://localhost:%s/\" > /dev/null" %HTTP_PORT 
stdin, stdout, stderr = ssh.exec_command(cmd) 
while not stdout.channel.exit_status_ready(): 
    r = stdout.channel.recv_exit_status() 
print "r is is %d" %(r) #it returns '7' 
+1

Überprüfen Sie, was in 'stdout' und' stderr' steht. – pynexj

+0

Ich kann nicht reproduzieren. Ich habe die gleichen Befehle ausprobiert, aber "0". Können Sie: 1. '--fail -s' und'>/dev/null' aus dem cmd entfernen, 2. 'stdout' und 'stderr' drucken? – hansaplast

+0

@whjm, beide ** stdin ** und ** stderr ** gibt das selbe wie ** stdout **, alle geben '7' zurück – georgewhr

Antwort

0

Das Problem war, dass Web-Server nicht vollständig nach oben während dieser Zeit ist.

Verwandte Themen