inetd + script

Gast #1689909
Hallo Linuxer,

habe hier eine Telefonanlage, die per RS232 mit einem Linuxrechner 
verbunden ist, der alle von ihr empfangenen ASCII-Zeilen in eine Datei 
schreibt. Nun möchte ich den Inhalt dieser Datei über einen TCP-Port 
abrufbar machen. Die Verbindung soll nach Übertragung der Datei bestehen 
bleiben. Sobald neue Zeilen in die Datei geschrieben werden, sollen 
diese parallel dazu über die TCP-Verbindung geschickt werden. Dazu habe 
ich ein Script erstellt, das eigentlich nur aus

#!/bin/sh
tail -f /pfad/zur/datei

besteht. In /etc/services habe ich einen neuen Service-Namen zusammen 
mit einer Portnummer festgelegt. In /etc/inetd.conf habe ich den 
Service-Namen mit obigem Script verknüpft.

Im Prinzip funktioniert auch alles wunderbar. Das Problem ist nun, dass 
nach einem Trennen der Verbindung durch den Client das Script bzw. tail 
offenbar nicht beendet wird. Es schadet zwar nicht der Funktion, nur 
wird die Prozessliste mit der Zeit voller und voller. Hat jemand eine 
Idee, wie man eine Trennung der TCP-Verbindung feststellen und das 
Script möglichst elegant beenden kann? Oder gibt es generell eine 
bessere Lösung für mein Vorhaben? Vielen Dank!

Tobias
Gast #1693240
Nicht im inetd getestet, aber vielleicht gehts so:

-----
#!/bin/bash
# Im Hintergrund das Tail
tail -f /tmp/watchme.log > /dev/tty &
# Im Vordergrund warten auf EOF
cat > /dev/null
# und dann killen.
kill %1
-----

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.