User since
2010-11-15
2
Artikel
BenutzerIn
Hi Community,
ich arbeite seit fast 2 Tagen jetzt an einem Problem mit SSH, Threads und timeouts. Aber hier eine genauere Beschreibung meines Problems:
Ich schreibe einen Daemon der seine Commands über eine FIFO erhält.
Diese Commands werden verarbeitet und triggern dann SSH Commands.
Die Commands werden noch in der Hauptschleife des Daemons verarbeitet um allerdings schneller zu sein verwende ich danach Threads.
Es verbindet sich also jeweils ein Thread (ich verwende das Modul Thread::Pool) per SSH auf einen Host und führt ein Command aus.
Mein Problem ist jetzt, dass manchmal diese Commands fehlschlagen, oder noch schlimmer, gar nicht zurückkommen. Somit würde ich gerne ein Timeout für diese SSH Commands mitgeben.
Das wäre ja auch noch kein Problem. Aber es gibt anscheinend einen Bug im threads Modul, durch welches das Timeout per eval & alarm nicht möglich. Verwende ich nämlich dieses wirft mein alarm durch alle evals durch und der Daemon stürzt mit der Meldung "Alarm Clock" ab.
Ich habe dann verschiedenst gegoogled, habe aber keine Möglichkeit gefunden ein solches Timeout zu implementieren.
Ich wäre euch über alles Dankbar, wenn sich irgend eine Lösung, bzw ein Tipp ergeben würde.
Danke schonmal,
g0hl1n!
P.S.: Wenn noch was unklar ist, oder ihr mehr Infos braucht, bitte einfach fragen!