我正在使用fabric并尝试在远程计算机上执行某些命令。 我写了一个python客户端来完成这项工作。
@task
@serial
def execute_command(timeout, command):
if timeout == -1:
return run(command, shell=False, pty=False, warn_only=True)
else:
return run(command, shell=False, pty=False, warn_only=True, timeout=int(timeout))
它确实安排了这项工作,但问题是每当有一个工作时间超过30秒左右时,它就永远不会出现在execute_command中。超时也不起作用。
当我执行ss -t | less
并检查套接字活动时,与该命令相关的ssh连接仍处于活动状态。它一直活跃,直到我杀了它。它永远不会自行死亡。
你能帮我解决这个问题吗?我希望它能够出来以及超时工作。
答案 0 :(得分:0)
想出来。
当我在运行参数中禁用了psuedo终端选项时,我能够达到我想要的效果。