为了将一些数据从AP发送到Zabbix服务器,我写了一些代码。(这件事情还可以......)
但是,我想为它创建一个守护程序线程。 除此之外,它不会释放我的终端...我在执行期间无能为力。我已经尝试了一些关于线程的教程,但对我来说没什么好事......
这是我的代码:
def miningBot():
#initialisation dictionnary
hostIP = {}
hostIP['Bornes Wifi -- LYON', 'borne5nbHostsLY'] = "*.*.*.*"
hostIP['Bornes Wifi -- LYON', 'borne6nbHostsLY'] = "*.*.*.*"
hostIP['Bornes Wifi -- GRENOBLE', 'borne6nbHostsGRE'] = "*.*.*.*"
hostIP['Bornes Wifi -- GRENOBLE', 'borne7nbHostsGRE'] = "*.*.*.*"
while True:
for value, ip in hostIP.items():
nbHosts = pickaxe(ip)
zabbix_cmd = "zabbix_sender -z *.*.*.* -p 10051 -s '" + value[0] + "' -k " + value[1] + " -o " + str(nbHosts)
zabbix_sender = subprocess.check_output(zabbix_cmd, shell=True)
sleep(10)
t = Thread(target=miningBot)
t.daemon = True
t.start()
对不起我的英语......谢谢你的帮助;)
答案 0 :(得分:0)
守护程序线程是不被视为程序终止障碍的线程,即。当唯一运行的线程是守护进程时,程序将终止。它们与守护进程无关,所以这不是你想要的。
您不能守护单个线程,您需要守护整个进程以将其从终端分离。 (所以你实际上根本不需要任何额外的线程。)你可以使用Python Daemon library来做到这一点。