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 :
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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 :
Comment se fait-il que netcat ne s'arrete pas avec le serveur lors du "kill -9 $PID" ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while read cmd ;do #blablabla done
Partager