从品牌网站建设到网络营销策划,从策略到执行的一站式服务
小编这次要给大家分享的是paramiko执行命令超时怎么办,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了绥宁免费建站欢迎大家使用!问题:paramiko远程执行命令,需要等到命令返回信息,如果命令执行时间比较长,返回信息就需要等很久
方案:
1、使用nohup + 待执行命令 + & ,使用后台执行的方式,应该可以快速返回
2、设置paramiko的执行命令等待超时时间
stdin, stdout, stderr = self.client.exec_command(cmd,timeout=10,get_pty=True)
其实上面的两种方案都不可行:方案1,需要优化,下面这种直接调用的方式会导致test.sh启动不起来
stdin, stdout, stderr = self.client.exec_command(‘sh ~/test.sh &',get_pty=True)
方案2,对于需要等待很久的命令,如果timeout小于程序的执行时间,还是会失败,命令执行失败
最终的解决方案来自参考1
把执行很久的sh文件A放入另一个sh文件B中,然后paramiko执行文件B。摘录原文:
paramiko远程执行后台脚本“阻塞”问题
我写的远程命令通道上线之后,发现在远程脚本中后台再执行另一个脚本,通道会一直等待后台脚本执行完成才会返回,有时甚至会僵死。
1、复现过程如下:
①、编写测试脚本
脚本1:test.sh
#!/bin/bash sleep 30 echo test end exit 0
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图