0

我目前正在使用mdt(mendel 开发工具 - 一种通过 ssh 用于谷歌珊瑚板的通信工具)和 subprocess.Popen 自动化一些事情,但是在第二次调用 mdt 时我总是得到

无法建立与设备的 ssh 连接:套接字错误:[Errno 25] 设备的 ioctl 不合适。

我怀疑一个套接字保持打开状态,下一次调用不能重用该套接字。但是我不确定在调用 subprocess.Popen 时如何关闭它。

这是我用来调用 mdt 的代码:

def execute(command: str) -> Tuple[AnyStr, AnyStr]:
   segmented_command = shlex.split(command)
   process = Popen(segmented_command, stdout=PIPE, stderr=PIPE,
                   universal_newlines=True)
   logging.info("\n".join(output.strip() for output in process.stdout.readlines()))
   stdout, stderr = process.communicate()
   return stdout, stderr

像这样称呼它:

execute("mdt push install_linux_headers_on_board.py .")
execute("mdt exec chmod +x /home/mendel/install_linux_headers_on_board.py")

有没有办法关闭套接字?

4

0 回答 0