SSH üzerinden bir blok aygıtı DD olacak bir kod üzerinde çalışıyorum ve bunu alt işlemle yapmak istiyorum, böylece aktarım sırasında DD'nin durumunu izleyebilirim. Mevcut durumu elde etmek için SIGUSR1 ile dd süreci ve seçerek kullanarak okuma).İki alt işlem arasındaki Python boru çıkışı
Böyle bir şey olacağını uygulamaya çalışıyorum komut:
dd if=/dev/sda | ssh [email protected] 'dd of=/dev/sda'
Denedim geçerli yöntem oldu: Bunu çalıştırdığınızda
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)
Ancak SSH süreci olur 10-40 saniye sonra defunct.
Burada tamamen açık mıyım, yoksa bu gibi alt süreçler arasında boru döşemenin bir yolu yok mu?
Düzenleme: Gerçek kodumda ana bilgisayar adı bulunmadı. Bu, işleri yapmanın doğru yolu.
Sana anahtar tabanlı kimlik doğrulama veya diğer interaktif olmayan mekanizmasını kullanarak umuyorum. –
Açıkçası;) Sadece ilgili ssh argümanını örnekle –
ilgili kısaltmak için çektim: [Subprocess.Popen'i birden çok işlemi borularla bağlamak için nasıl kullanırım?] (Http://stackoverflow.com/q/295459/4279) – jfs