[Bash] netcat impossible à tuer
Bonjour,
Je fais un petit client/serveur avec netcat, le serveur principal lance un serveur secondaire netcat en arriere plan qui est censé se fermer après un certain timeout.
J'arrive a faire fonctionner le timeout, le serveur secondaire se termine mais j'ai toujours netcat qui tourne.
code du serveur secondaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
#!/bin/bash
port=$2
exe="services/"$1
export PID=$$
export TIMEOUT=10
(sleep $TIMEOUT; kill -9 $PID)&
TPID=$!
while true ; do
netcat -l -p $port -e $exe
kill -9 $TPID
(sleep $TIMEOUT; kill -9 $PID)&
TPID=$!
done |
La boucle while est bloquée pendant l'execution de netcat, netcat se ferme après la connexion d'un client, tant qu'un client se connecte avant 10s le timeout est relancé (ainsi que netcat)
lorsque le timeout est terminé, le script s'arrete bien mais j'ai toujours un processus netcat qui tourne en arrière plan et sur lequel je peux me connecter.
le $exe a cette forme :
Code:
1 2 3 4
|
while read cmd ;do
#blablabla
done |
Comment se fait-il que netcat ne s'arrete pas avec le serveur lors du "kill -9 $PID" ???