Forkerei mit xinetd ungünstig

30/04/2016 - 13:48 von Tim Ritberg | Report spam
Hi!

Ich habe ein Script:
tail -f -n 0 /var/log/isdn/isdnlog | stdbuf -oL -eL grep "RING"

Es fischt die Anrufe auf dem Log. Ausgeführt wird es durch xinetd:
service isdn-mon
{
disable = no
socket_type = stream
log_type = SYSLOG daemon info
protocol = tcp
wait = no
user = root
server = /usr/local/sbin/isdn-monitor.sh
flags = REUSE
}


Der Server mit der ISDN-Karte làuft durch, die Clients nur tagsüber.
Leider ist der Disconnect unordentlich:
10.0.0.1:8899 10.0.0.201:50308 CLOSE_WAIT 17597/bash

Das xinetd-Child bleibt also bis zum Serverneustart.

Wie könnte man das lösen?

Tim
 

Lesen sie die antworten

#1 Peter J. Holzer
01/05/2016 - 09:48 | Warnen spam
On 2016-04-30 11:48, Tim Ritberg wrote:
Ich habe ein Script:
tail -f -n 0 /var/log/isdn/isdnlog | stdbuf -oL -eL grep "RING"



Wenn das ein GNU grep ist, sollte

tail -f -n 0 /var/log/isdn/isdnlog | grep --line-buffered "RING"

den gleichen Effekt haben.

[...]
Der Server mit der ISDN-Karte làuft durch, die Clients nur tagsüber.
Leider ist der Disconnect unordentlich:
10.0.0.1:8899 10.0.0.201:50308 CLOSE_WAIT 17597/bash

Das xinetd-Child bleibt also bis zum Serverneustart.



IMHO sollte das beim übernàchsten Anruf sterben:

Beim nàchsten Anruf gibt tail eine Zeile mit "RING" an grep weiter, grep
versucht, die auf den geschlossenen socket auszugeben und stirbt an
einem SIGPIPE.

Beim übernàchsten versucht tail was in die Pipe zu schreiben und
verstirbt ebenfalls mangels Leser.

Nachdem die bash nun keine Kinder mehr hat, verabschiedet sie sich
ebenfalls.


Wie könnte man das lösen?



Soweit ich sehe, hat xinetd keine Möglichkeit, einen Server zu killen,
wenn die Connection abreißt (wundert mich nicht, schließlich
interessiert ihn der Socket nicht mehr, sobald er den Kindprozess
gestartet hat). Wenn der Server aus irgendeinem Grund das Schließen des
Sockets nicht mitbekommt, bleibt IMHO nur, den xinetd zu restarten. Das
würde ich aber nur machen, wenn das Problem nicht nur ein àsthetisches
Problem ist.

hp


_ | Peter J. Holzer | Fluch der elektronischen Textverarbeitung:
|_|_) | | Man feilt solange an seinen Text um, bis
| | | | die Satzbestandteile des Satzes nicht mehr
__/ | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel

Ähnliche fragen