Python Rohrleitungen Ausgang zwischen zwei Teilprozesse

Arbeite ich an etwas code, dass DD ein block-Gerät über SSH, und ich bin zu wollen tun Sie dies mit Unterprozess, so dass ich können den status von DD während der übertragung (die Tötung der dd-Prozess mit SIGUSR1 um seinen aktuellen Zustand und zu Lesen, dass die Verwendung auswählt).

Den Befehl, den ich bin versucht zu implementieren wäre so etwas wie dieses:

dd if=/dev/sda | ssh root@example.com 'dd of=/dev/sda'

Die aktuelle Methode, die ich versuchte, war:

dd_process = subprocess.Popen(['dd','if=/dev/sda'],0,None,None,subprocess.PIPE, subprocess.PIPE)  
ssh_process = subprocess.Popen(['ssh','[email protected]','dd of=/dev/sda'],0,None,dd_process.stdout)

Allerdings wenn ich diesen Befehl ausgeführt, der SSH-Prozess außer Kraft gesetzt wird nach 10-40 Sekunden.

Bin ich völlig stumpf da, oder gibt es keine Möglichkeit, die Pipeline zwischen Teilprozesse wie diese?

Edit: Stellt sich heraus, mein echter code, nicht den Hostnamen in es. Dies ist der richtige Weg, Dinge zu tun.

InformationsquelleAutor Philip J | 2011-01-31
Schreibe einen Kommentar