1. 程式人生 > >python paramiko導致程式掛起(待續)

python paramiko導致程式掛起(待續)

發現問題

幾天前做基於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上還有專門對此問題開的一個issue,Thread/import related hang issues #104,其中有一個人解釋:當paramiko成功讀取遠端ssh標題並嘗試str.decode(’utf-8’),它隱式地從編碼模組匯入utf-8解碼器時,發生匯入死鎖。
他給出的解決方法是提前呼叫一次str.decode('utf-8')

,防止由於模組匯入副作用導致的特定匯入,但這個方法我試了之後沒有起作用,作者的觀點是不推薦在模組中執行模組級別的ssh連線,因為匯入產生執行緒的模組本身就不安全。
看來只能把ssh程式碼封裝到一個類裡了,這個問題感覺算不上解決,以後要繼續關注,看看有沒有什麼更優的解決方案。

相關推薦

python paramiko導致程式(待續)

發現問題 幾天前做基於tornado的web系統的時候,啟動系統後發現無法訪問,而且監聽特定埠只能同時開啟一個程序的web程式居然能開啟無限多個,使用netstat -ano |grep 埠號發現web程式根本沒有佔用埠,說明程式根本沒有啟動成功,在程式中打斷

呼叫libvlc_media_player_stop經常會導致程式

最近使用libvlc時碰到這個問題。google了一下。在官方論壇上也很多人碰到這個問題。但是都沒有提供比較好的解決辦法。 VLC社群的人本來時間就不多,有限的精力都花在VLC本身上了,沒有空理會libvlc上出現的問題。 除非哪天整個VLC都在libvlc上搭建,社群的人

Python-自制簡易程式機刷御魂

降智警告:本人為程式設計新手,遵守面向CSDN程式設計原則,程式碼架構具有個人特色,僅供參考 前言:因為陰陽師的櫻餅快用完了,就隨手寫了個指令碼,最後也包裝成了exe,效果不錯但是經常在關閉的時候崩潰 一.功能 幫忙點選戰鬥勝利後出現獲得的獎勵的介面(不侷限於御魂,

程式後,能在後臺繼續執行任務

原文出自:www.hangge.com 轉載請保留原文連結:http://www.hangge.com/blog/cache/detail_811.html 1,程式的掛起和退出 由於iOS裝置資源有限。當用戶點選了home鍵,或者另一個應用程式啟動了。那

OracleCommand執行ExecuteNonQuery出現程式現象

string sql = "INSERT INTO TempTable (A, B, C) VALUES ('2222222', '1111111', 'RRR')";//A為主鍵 OracleCommand cmd = new OracleCommand(sql, con

tensorflow 程式的原因,即整個程序不報錯又不執行的原因

一、說明:在使用tensorflow的過程中,出現過程式不報錯又不接下去執行的錯誤,後來分析了原因是tf的資料執行緒沒有啟動,導致資料流圖沒辦法計算,整個程式就卡在哪裡。 更深層次的原因是tensorflow的計算和資料讀入是非同步的,合理的方式是主執行緒進行模型的訓練,然

sql server2008 檢查是否需要計算機重新啟動。起重新啟動會導致安裝程式失敗

解決方法: 1、如果重新啟動後,一樣無效, 2、那麼就進入登錄檔編輯器,通過修改登錄檔的方法來解決。除了刪除SQL安裝時遺留下的LJ檔案,還必須進行以下操作: 在"開始"-"執行"中輸入regedit,進入登錄檔編輯器,依次查詢 HKEY_LOCAL_MACHI

linux後臺執行程式,不斷的執行,注意並沒有後臺執行的功能 &是指在後臺執行,但當用戶推出()的時候,命令自動也跟著退出

** linux後臺執行程式,不掛斷的執行,注意並沒有後臺執行的功能 &是指在後臺執行,但當用戶推出(掛起)的時候,命令自動也跟著退出 ** 正文 回到頂部 nohup nohup 命令執行由 Command引數和任何相關的 Arg引數指定的命令,忽略所有結束通話(SIG

在MDI子窗體中開執行緒建立新彈出窗體程式會被無法繼續下去

public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] st = sc.nextLine().split("

Sqlserver 收縮資料庫導致OGG程序

問題描述: 每日定時進行sqlserver資料庫備份,每次備份完成後,ogg抽取程序掛起; 問題分析: 收縮資料庫,將執行如下sql命令: DBCC SHRINKDATABASE(N’bshis’, 10, TRUNCATEONLY) 經測試,資料庫經過日誌收縮,全量備份後

IOS 後臺程式程式到後臺後,繼續完成定位任務

// 當應用程式掉到後臺時,執行該方法 - (void)applicationDidEnterBackground:(UIApplication *)application { } 當一個 iOS 應用被送到後臺,它的主執行緒會被暫停。你用 NSThre

解決ssh連接慢,在SSH2_MSG_SERVICE_ACCEPT信息之後很久的問題

log dns解析 註意 但是 大致 導致 自己 conf highlight 問題現象:無論是ssh 還是 scp 都會連接很久才提示輸認證信息(註意:是連接慢) 如本機IP:192.168.18.208 (Hostname: ThinkPad) 目標主機:192.168

linux進程的和恢復

開始 順序 cpu 結束 足夠 cpu使用率 腳本 占用 command 進程的掛起及恢復 #ctrl+z:掛起,程序放到後臺,程序沒有結束。 #jobs:查看被掛起的程序工作號 恢復進程執行時,有兩種選擇:fg命令將掛起的作業放回到前臺執行;用bg命令將掛起的作業放到後臺

pg數據庫數據表異常

對數 details pgadmin 希望 一個 進行 nbsp 增刪查改 選中 pg數據庫即是PostgreSQL數據庫。 前幾天在一個Java項目中,出現運行Java程序後,pg數據庫的數據表異常掛起。而且是在某臺電腦上出現的,重裝數據庫也沒用,其它電腦未能復現,是個很

SQLSERVER 數據庫恢復的解決辦法

loss emergency 恢復 master sqlserver pair 如果 ase emerge 如果你的數據庫還處於掛起狀態,請把我下面代碼的test改為你的庫名,然後執行完,刷新就正常了: USE masterGOALTER DATABASE test SET

ios9定位服務的app進入後臺三分鐘收不到經緯度,應用被問題及解決方式

sso 進入 ont use -c 大於 null 方案 cti 原來定位服務是10分鐘收不到定位信息就掛起定位,如今變為最短3分鐘,預計都是為了省電吧。僅僅要你開啟應用的後臺定位,而且10分鐘有一次定位,那麽蘋果就不會關閉你的線程。如今變成3分鐘。若你

WhatIsHang(程序查詢器)

進行 如何解決 tro 停止 get ref 作者 信息 href 軟件簡介: 有時,Windows或掛起運行的應用程序,用戶界面突然停止響應,並且您不能確定是什麽原因造成的問題,或如何解決該問題。此實用程序嘗試檢測軟件或進程正在掛起,並顯示一些信息,可能讓你進行梳

假設分配給命令的連接位於本地事務中,ExecuteReader 要求命令擁有事務。命令的 Transaction 屬性尚未初始化

execute ati com data- dap system.in tty exceptio ada {System.InvalidOperationException: 假設分配給命令的連接位於本地掛起事務中。ExecuteReader 要求命令擁

python-paramiko初體驗

param sed 小試牛刀 sys policy .org anaconda blank all 什麽pexpect、pxshll在paramiko面前都是浮雲,重要的是paramiko支持windows。 小試牛刀 import paramiko paramiko.

【樹莓派】RPi desktop系統重啟或關機問題:plymouth-reboot.service

rect red see hat 系統重啟 其他 www. pyse exc 在基於intel平臺安裝的RPi desktop關機或者重啟時,會存在掛起的問題,一直卡著不動。 頁面停留在:plymouth-reboot.service。 經過查詢,可能的解決辦法如下: