socket.connect beim Systemstart
Verfasst: Mittwoch 20. August 2014, 11:40
Hallo liebes Forum!
Ich habe ein Problem mit meinem Programm: Es wird beim Systemstart (Runlevel 2, Raspberry pi) gesstartet und soll Daten an Logstash schicken. Ich habe 2 Funktionen: Logstash_send_int und logstash_send_ups. (Daten einer USV) Beide Funktionen machen im Prinzip das selbe:
Wenn ich das Programm von Hand aufrufe, funktioniert alles, wenn ich es vom System starten lasse, bekomme ich ein Fehler bei "s.connect..:", aber nur bei logstash_send_int. Die e.message ist leer, ich bekomme nur die Zeile. Die Daten von Logstash_send_ups kommen an. Im Hauptprogramm rufe ich ein Thread auf, welcher dann Logstash_send_ups aufruft, Logstash_send_int wird "normal" aufgerufen. Das Ganze läuft noch als Dämon (falls das interessant ist). Ich habe keine Ahnung, warum ein einmal geht und einmal nicht, da das netzwerk ja schon geladen ist (muss ja, einmal gehts ja) und wieso das funktioniert, wenn ich den Dämon von Hand starte.
Kann mit jemand weiterhelfen??
Finn
Ich habe ein Problem mit meinem Programm: Es wird beim Systemstart (Runlevel 2, Raspberry pi) gesstartet und soll Daten an Logstash schicken. Ich habe 2 Funktionen: Logstash_send_int und logstash_send_ups. (Daten einer USV) Beide Funktionen machen im Prinzip das selbe:
Code: Alles auswählen
def logstash_send_int(self, key, value): #Wert (Zahl) an Logstash senden
protocol = socket.SOCK_STREAM #TCP als Standart
if Logstash_PROTOCOL == "udp":
protocol = socket.SOCK_DGRAM #Protokoll nach upd ändern
s = socket.socket(socket.AF_INET, protocol)
s.connect((Logstash_IP, int(Logstash_PORT))) #Verbinden
s.send("{ \"" + key + "\": " + str(value) + "}\n")
s.close()
def logstash_send_ups(self, nr, values): #json-string mit den USV-Daten senden
protocol = socket.SOCK_STREAM #TCP als Standart
if Logstash_PROTOCOL == "udp":
protocol = socket.SOCK_DGRAM
s = socket.socket(socket.AF_INET, protocol)
s.connect((Logstash_IP, int(Logstash_PORT)))
ret = "{\"ups" + str(nr) + "\": {"
ret += ".."
s.send(ret) #senden
s.close()
Kann mit jemand weiterhelfen??
Finn