python paramiko导致程序挂起(待续)

在开发基于Tornado的Web系统时,发现程序在import包含Paramiko代码的文件后挂起,无法启动。研究发现,Paramiko在尝试读取SSH标题并解码时可能导致导入死锁。尽管有人建议预加载解码器来避免,但这并未解决问题。作者认为在模块级别使用SSH连接不安全,建议将SSH代码封装到类中作为临时解决方案。
摘要由CSDN通过智能技术生成

发现问题

几天前做基于tornado的web系统的时候,启动系统后发现无法访问,而且监听特定端口只能同时开启一个进程的web程序居然能开启无限多个,使用netstat -ano |grep 端口号发现web程序根本没有占用端口,说明程序根本没有启动成功,在程序中打断点也没有反应,最后发现程序在import一个文件后就直接挂起了。

这个文件定义了几个控制器类,其开始部分有这样几行代码

import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
client.connect(srv['hostname'], srv['port'], srv['username'], srv['password'])
clients.append(client)

经过调试,在执行client.connect()之后进程就挂起了,下面的代码都无法执行,整个系统就在这里停住了。

寻找答案

首先我百度了很久,结果没有找到什么有用的解释,最后用Google搜到了相关问题(Google大法好!),而且

github上还有专门对此问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值