我有以下的 Python 代码,它会卡住:
cmd = ["ssh", "-tt", "-vvv"] + self.common_args
cmd += [self.host]
cmd += ["cat > %s" % (out_path)]
p = subprocess.Popen(cmd, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate(in_string)
这段代码旨在通过ssh将一个字符串(in_string)保存到远程文件中。
文件成功保存,但随后程序卡住了。如果我使用
cmd += ["echo"] instead of
cmd += ["cat > %s" % (out_path)]
这个进程没有挂起,所以我很确定我对通信方式认为进程已退出的理解有误。
你知道我应该如何编写命令,使得“cat > file”不会使通信挂起吗?