Moin!
Wenn ich Programme in C entwickle, kommt es immer mal wieder zu kleineren Abstürzen während der Testphasen. In solchen Fällen (sei es nun durch ganz böse Speicherzugriffsfehler oder einfach nur durch ein abschießen eines Programms, das nicht mehr reagiert) kann eine Signal-Aktionroutine nicht ablaufen, da das Programm dann eben auf kein Signal mehr gehorcht. Zumindest in manchen Fällen.
Das kann mitunter sehr doof sein, weil man dann neben möglicherweise anderen Dingen, die man ungepflegt im Speicher hinterlässt auch schonmal den einen oder anderen Socket offen lässt. Will man die dann bei einem erneuten Programmablaufsversuch wieder benutzen, sind die "alten" nicht geschlossen und man kann u.U. keine neuen öffnen, bevor ein Timeout abgelaufen ist oder dergleichen Dinge gesehen (ja, ich kenne die socket options, mit denen man auch einen blockierte Adresse wieder benutzen könnte, aber darauf will ich nicht hinaus).
Meine Frage: Gibt es einen Shell-Befehl, der alle möglicherweise noch offenen sockets schließt? Eine Art "fflush()" für sockets, die wie Zombies umhergeistern?
Vielen Dank im Voraus für jeden Tipp!
Herakles