subprocess.Popen 中的 Mendel 开发工具引发套接字错误:[Errno 25]

问题描述

我目前正在使用 mdt(mendel 开发工具 - 一种通过 ssh 用于 google coral board 的通信工具)和 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")

有没有办法关闭套接字?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)