Zeitüberschreitungsfehler bei Subprozess

8

Ich möchte ein Timeout für einen Subprozess verwenden

%Vor%

Leider führt dies zu einem Zeitüberschreitungsfehler, jedoch nach 30 Sekunden. Es scheint, dass check_output den Shell-Befehl nicht unterbrechen kann.

Was kann ich auf der Python-Seite tun, um das zu stoppen? Ich vermute, dass subprocess32 den zeitgesteuerten Prozess nicht abbricht.

    
innisfree 30.04.2016, 07:42
quelle

1 Antwort

16

check_output() mit Timeout ist im Wesentlichen :

%Vor%

Es gibt zwei Probleme:

Es führt zu dem von Ihnen beobachteten Verhalten: Die TimeoutExpired passiert in einer Sekunde, die Shell wird getötet, aber check_output() kehrt nur in 30 Sekunden zurück, nachdem das Enkelkind sleep process beendet wurde.

Um die Probleme zu umgehen, beenden Sie den gesamten Prozessbaum (alle Subprozesse, die zur selben Gruppe gehören):

%Vor%

Ausgabe

%Vor%     
jfs 30.04.2016, 13:18
quelle

Tags und Links