【发布时间】:2015-12-16 07:46:35
【问题描述】:
我正在尝试使用 ssh spawn 向远程机器发送命令。
我正在使用Popen() 发送命令,我可以看到命令已完成,但之后我尝试使用communicate()(关闭会话并获取返回码)并且程序卡住了。
cmd = """expect -c 'spawn ssh -o LogLevel=quiet """ \
"""-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PreferredAuthentications=publickey """ \
"""-o ConnectTimeout=10 -2 -o CheckHostIP=no -i {0} {1}@{2} ;\
"""expect "#";send "mkdir test9\n" ;interact'""".format(self.sshKey, SSHUser, self.hostname)
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p_stdoutdata, p_stderrdata = process.communicate()
当我到达通信时,程序卡住了。
【问题讨论】:
标签: python ssh process popen communicate