ich habe ein Problem mit Threads und Daemons.
Grundidee:
Eine daemonisierte Prozess soll Threads starten, welche dann im Hintergrund Informationen sammeln und diese in Dateien speichern.
Lösungsansätze:
1. nach den Python Cookbook Daemon erzeugen und Thread starten
2. Mainthread bereits als Daemon starten
Problem:
Sobald the Threads daemonisiert sind oder vom Daemon aus gestartet werden, passiert innerhalb der Threads scheinbar nichts mehr. Mit ps -x auch nicht mehr auffindbar.
Testbeispiel:
Starte folgenden Code NICHT daemonisiert:
Code: Alles auswählen
import threading, os, sys
class TestThread(threading.Thread):
'''
This class is responsible for starting the ClientThreads within a certain interval.
'''
def __init__(self):
'''
Constructor
'''
threading.Thread.__init__(self)
def run(self):
'''
overwriting the standard run method
'''
file_fd = open("test_damon.txt", 'w')
file_fd.close()
file_fd = file("test_damon.txt", 'r+')
z = 0
while(z<10):
asdf = "ich bin der böse thread\n"
print asdf
file_fd.seek(0,2)
file_fd.writelines(asdf)
time.sleep(1)
z += 1
file_fd.close()
if __name__ == '__main__':
workerthread = TestThread()
workerthread.setName("workerthreadDaemon")
#workerthread.setDaemon(True)
workerthread.start()
sys.exit(0)
Warum nicht? Übersehe ich hier eine wichtige Sache?
Kann mir jemand helfen oder erklären wo das Problem liegt?
Ich benutzt Python 2.2.3 und SuSE 9.3.
Vielen Dank !
Anderl
Edit (Leonidas): Code in Python-Tags gesetzt.