无法停止/杀死异常线程-Python

时间:2020-04-29 06:28:12

标签: python multithreading ssh python-multithreading kill

我想使用线程并行打开多个SSH会话,并在连接失败时停止或终止线程。 这是我的代码:

x match {
  case FooType.FooA.toString => println("success using match")
}

ScalaFiddle.scala:19: error: stable identifier required, but ScalaFiddle.this.FooType.FooA.toString found.
    case FooType.FooA.toString => println("success using match")
                      ^

这是输出:

import threading
import paramiko

def connSSH(num,num2):
    """thread connSSH function"""
    print ('Thread ', num,num2)

    try:
        print("\n \nOpen session in: " + num + "...")
        ssh.connect(num, username='root', password=num2)
        print("listing /tmp..")
        stdin, stdout, stderr = ssh.exec_command("ls /tmp/")
        lang_response=stdout.readlines()
        print(lang_response)
        ssh.close()
    except:
        # Stop/kill the thread if connection fails
        print("Connection Failed")
        ssh.close()
        failed.append(num)
        t._stop()
    return  

ip_list=["192.168.20.3","192.168.20.1"]
ip_pass=["aaa","bbb"]

failed=[]
threads = []

ssh = paramiko.client.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())


for i,l in zip(ip_list,ip_pass):
    t = threading.Thread(target=connSSH, args=(i,l))
    threads.append(t)
    t.start()

t.join()

#ssh.close()
print("failed connection",failed)
print("\n\n***********************End execution***********************\n\n")

因此第一个线程(192.168.20.3)仍在运行,并且fail []为空,而它应该包含IP 192.168.20.3。

我在做什么错了?

谢谢

0 个答案:

没有答案