嘿伙计们我得到了以下ssh命令,
try:
print 'trying to restart'
self.ssh.exec_command(RR_CMD % (self.path_ext, self.rport), timeout=1)
print 'restarted'
except:
self.ssh.close()
self.ssh = ssh.create_ssh_client(self.ip, self.port, self. username, self.password)
self.restart()
基本上我试图重启远程perl脚本。 但是有时候,比如让我们说2000年的1 - 我的python程序在exec_command行上冻结有时长达几分钟!
我想使用超时功能,我设置为1秒,但由于某种原因它不起作用......
答案 0 :(得分:2)
我在exec_command中的超时问题没有得到尊重我的预期。例如,我将超时设置为60,并发现一个挂起的命令整夜运行。我以前做的是
response = client.exec_command(command, timeout=60)
returncode = response[0].channel.recv_exit_status()
但是当超时为None或任何值时,它挂在recv_exit_status
上,现在,我只是自己管理超时,因为exec_command
是非阻塞的,通过轮询{{ 1}}。
channel.exit_status_ready
答案 1 :(得分:0)
您的public String toString() {
String temp = new String();
temp = "Movie title: " + getTitle() + "\nYear of Release: " +
getYear();
return(temp);
}
版本怎么样?
paramiko
支持的参数paramiko
的最新版本。
Paramiko Changelog v1.10.0:
将超时参数添加到SSHClient.exec_command,以便更轻松地设置命令的内部通道对象的超时。感谢Cernov Vladimir的补丁。