Server-Client Programm erzeugt CLOSE_WAIT unter LINUX

Hallo Interessierte und hilfsbereite.
Ich habe folgendes Problem. Unter Linux habe ich mit Ruby einen Client Programmiert, der im Minutentakt aufgerufen wird. Er sendet ein Telegramm zu einem Ruby-Server und veranlasst diesen, sich mittels „Lebend-Telegramm“ an einer Überwachungssoftware zu melden, die beim Ausbleiben des Telegramms Alarm schlägt.
Das funktioniert alles wie gewünscht. Leider sehe ich unter Linux CLOSE_WAITs. Sowohl der Client als auch der Server erreichen den close socket über ensure-Zweig und tragen das i den Logfile ein. Somit würde ich sagen, die Client-Serververbindung und die Server-Überwachungsverbindung werden abgebaut. Aber die CLOSE_WAITs werden erzeugt und verschwinden, wenn ich den Server neu starte. Kann man „rabiater“ zuschlagen als ein socket.close? Programmiertechnisch bin ich nicht unerfahren, aber mir fehlt eine Idee.
Danke für jede Antwort.

Also, wenn du den relevanten Source-Code hier reinstellen könntest, wäre das hilfreich. 

Du könntest mal versuchen auf beiden seiten die Variable, die den Socket hält, auf ein anderes Objekt(oder nil) zu setzen. Dann die GarbageCollection anwerfen mit:

GC.start

Und die Verbindung sollte geschlossen werden.