线程外壳卡在程序出口处

2024-06-07 17:27:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经基于python-nmap库编写了一个网络映射程序。 我有一个包含所有要扫描的IP地址的列表。 从htop我看到所有生成的线程都在程序退出之前终止

当程序执行完成时,shell(我使用bash)停止运行。当我写东西时,它不会显示我在写什么。如果我写“reset”(即使我看不到),shell将正确地重新初始化

怎么了

我使用安装在Debian 10 Buster发行版上的Python 3.7.3运行该脚本

下面是一段代码

#!/usr/bin/env python3

hosts_up = ['192.168.0.5', '192.168.0.6', '192.168.0.8']
fingerprinting_threads = []
nm_obj = nmap.PortScanner()

# Callback
def fingerprintAndSaveToDb(host_to_fingerprint):
    scan_result = nm_obj.scan(hosts=host_to_fingerprint, ports=None, arguments=' -sN -Pn')
    print(scan_result)

# Main flow
for single_host_up in hosts_up:
    t = threading.Thread(target=fingerprintAndSaveToDb, args=(single_host_up,))
    t.start()
    fingerprinting_threads.append(t)

print("Joining")
for single_thread in fingerprinting_threads:
    single_thread.join()
print("Joint")

# sys.exit() - It could be unuseful

Tags: to程序objhostscanshellnmapprint

热门问题