Hinzufügen timeout im Teilprozess.check_output

Ich entwickle ein kleines tool in Python 2.7 und mit subprocess-Modul. Ich bin mit diesem Modul zum ausführen von Befehlen auf remote-Geräten erfolgt über die check_output Funktion. Es könnte eine situation, in der das remote-Gerät nicht funktioniert und somit bin ich immer die folgende Antwort:
Timeout: No Response from 10.xxx.xxx.xxx
Folgendes ist mein code:

try:
    x=subprocess.check_output(command, shell=True)
except Exception:
    print ("Some issues in fetching details")
    exit()
else:
    print (x)

Will ich timeout in dieser Funktion, so dass, wenn nach einer gewissen Zeit keine Antwort eingegangen ist, mein code geht im Exception-Teil und druckt die angegebene Nachricht. Ich habe versucht, mit timeout-argument in der check_output Befehl aber nach dem ausführen meines scripts mit timeout-argument, es ist sofort drucken der Nachricht in der Exception-Teil.
Was habe ich versucht:

try:
    x=subprocess.check_output(command, shell=True, timeout=5)
except Exception:
    print ("Some issues in fetching details")
    exit()
else:
    print (x)
  • Sind Sie mit Python 2 oder 3?
InformationsquelleAutor Vipul | 2015-04-15
Schreibe einen Kommentar