Tôi đang làm việc trên một số mã sẽ DD thiết bị chặn qua SSH và tôi muốn thực hiện điều này với quy trình con để tôi có thể theo dõi trạng thái của DD trong quá trình truyền (giết dd quá trình với SIGUSR1 để có được trạng thái hiện tại của nó, và đọc bằng cách sử dụng các lựa chọn).Đầu ra đường ống Python giữa hai quy trình con
Lệnh mà tôi đang cố gắng để thực hiện sẽ là một cái gì đó như thế này:
dd if=/dev/sda | ssh [email protected] 'dd of=/dev/sda'
Phương pháp hiện tại tôi đã cố gắng là:
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)
Tuy nhiên khi tôi chạy này, quá trình SSH trở thành không còn tồn tại sau 10-40 giây.
Tôi có hoàn toàn bị nguyền rủa ở đây hay không có đường ống nào giữa các quá trình con như thế này?
Chỉnh sửa: Tắt mã thực của tôi không có tên máy chủ trong đó. Đây là cách làm đúng.
Tôi hy vọng rằng bạn đang sử dụng chính xác thực dựa trên hoặc cơ chế không tương tác khác. –
Rõ ràng;) Tôi chỉ lấy đối số ssh đó để rút ngắn ví dụ –
liên quan: [Làm cách nào để sử dụng subprocess.Popen để kết nối nhiều quy trình bằng đường ống?] (Http://stackoverflow.com/q/295459/4279) – jfs