Я работаю над кодом, который будет DD блочного устройства через SSH, и я хочу сделать это с подпроцессом, чтобы я мог отслеживать состояние DD во время передачи (убивая процесс dd с помощью SIGUSR1, чтобы получить его текущее состояние и чтение с использованием select).
Команда, которую я пытаюсь реализовать, будет выглядеть примерно так:
dd if=/dev/sda | ssh root@example.com 'dd of=/dev/sda'
Текущий метод, который я попробовал, был:
dd_process = subprocess.Popen(['dd','if=/dev/sda'],0,None,None,subprocess.PIPE, subprocess.PIPE)
ssh_process = subprocess.Popen(['ssh','root@example.com','dd of=/dev/sda'],0,None,dd_process.stdout)
Однако, когда я запускаю это, процесс SSH перестает функционировать через 10-40 секунд.
Я совершенно тупой, или нет способа соединить такие подпроцессы?
Редактировать: Оказывается, в моем реальном коде не было имени хоста. Это правильный способ делать вещи.