【发布时间】:2011-03-14 01:03:36
【问题描述】:
我使用 Paramiko 从远程 Linux 机器启动一个 shell 脚本。启动 shell 脚本并执行命令make -j8。但是 exec_command 在 make 完成之前返回。
如果我在本地机器上启动脚本,它会正确执行。
有人可以解释一下这种行为吗?
【问题讨论】:
我使用 Paramiko 从远程 Linux 机器启动一个 shell 脚本。启动 shell 脚本并执行命令make -j8。但是 exec_command 在 make 完成之前返回。
如果我在本地机器上启动脚本,它会正确执行。
有人可以解释一下这种行为吗?
【问题讨论】:
您需要等待应用程序完成,exec_command 不是阻塞调用。
print now(), "before call"
stdin, stdout, sterr = ssh.exec_command("sleep(10)")
print now(), "after call"
channel = stdout.channel
print now(), "before status"
status = channel.recv_exit_status()
print now(), "after status"
【讨论】: