FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Markus Bloch am 24 Februar 2013, 15:11:25

Titel: Blocking.pm - Benutzen von POSIX::_exit(0) um den Fork zu beenden
Beitrag von: Markus Bloch am 24 Februar 2013, 15:11:25
Hallo Rudi,

ich wurde von Johannes auf einen Fehler aufmerksam gemacht der Auftritt, wenn man PRESENCE und DbLog zusammen verwendet. Dabei schmiert immer beim beenden eines Forks die MySQL-Verbindung ab, da auch hier wieder die File-Deskriptoren gelöscht werden.

Dies liegt am exit(0) Befehl mit dem der Fork ja auch beendet werden soll. Dabei werden aber eben auch die FileDeskriptoren auf Unix-Systemen geschlossen.

Laut http://perldoc.perl.org/perlfork.html (//perldoc.perl.org/perlfork.html) wird daher hier der Aufruf von POSIX::_exit(0) empfohlen um das schließen von solchen Verbindungen zu verhindern.

Ich würde daher vorschlagen in Blocking.pm die Zeile 112 in folgendes zu ändern.


POSIX::_exit(0);


Ich habe dies erfolgreich unter Linux und auf der FritzBox getestet. Für Windows hat dies keine Relevantnis.

Währe toll, wenn du das einchecken könntest.

Vielen Dank

Gruß
Markus
Titel: Aw: Blocking.pm - Benutzen von POSIX::_exit(0) um den Fork zu beenden
Beitrag von: rudolfkoenig am 24 Februar 2013, 15:55:36
Eingecheckt