sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #94280
netcat driller
Hej
Jeg sidder og udvikler noget server software og vil teste det med shell
scripts og netcat, men er stødt på et problem.
Jeg har følgende script:
#!/bin/bash
#keepalive.sh
con_file=$(tempfile -p imc_)
send_file=$(tempfile -p ims_)
while [ -f ${send_file} ] && [ -f ${con_file} ]; do
echo "Sending" > /dev/stderr
echo "<msg/>"
sleep 5
done
while [ -f ${con_file} ]; do
echo "Waiting" > /dev/stderr
sleep 5
done
rm -f ${con_file} ${send_file}
...og det kalder jeg med:
nc -c ./keepalive.sh localhost 7100
Sålænge de to filer findes, holdes forbindelsen åben og der sendes.
Hvis ${con_file} slettes så afsluttes scriptet og forbindelsen lukkes.
Hvis ${send_file} slettes så holder scriptet op med at sende men
forbindelsen holdes åben.
Min server vil da efter et stykke tid uden at have modtaget data lukke
forbindelsen.
Jeg kan med wireshark se, at forbindelsen faktisk bliver lukket (fin-ack
og så'n), og så regnede jeg med at netcat afsluttede, men den kører videre.
Jeg har også prøvet følgende:
nc -q 1 -c ./keepalive.sh localhost 7100
Dokumentationen siger:
-q secs quit after EOF on stdin and delay of secs
Men det sker heller ikke.
Kan man ikke få netcat til at afslutte scriptet og lukke, når
forbindelsen ryger ?
VH
Robert