Une fois que le client a terminé, le processus est automatiquement fermé. Je voudrais faire la même chose du côté serveur, car je veux automatiser certains processus, mais le côté serveur se termine mais rest ouvert.
utilisez l’option iperf -t
. Donc, il s’arrêtera après t
secondes. Le délai d’expiration du client iperf par défaut est de 10 secondes. donc ça s’arrête après ça.
Essayer. Ici les deux s’arrêteront après 10
secondes.
Serveur: iperf -s -t 10
Client: iperf -c
-t 10
Démarrez-le en arrière-plan, attendez qu’il soit terminé et après l’avoir tué.
iperf -s -w 2Mb -p 5001 & sleep 20 pkill iperf
Je pense que cela dépend de la version. Je peux parler pour iperf 2 où nous avons récemment ajouté cette fonctionnalité. Lorsque le -server
est lancé, il y aura finalement deux threads par “serveur”, un thread d’écoute et un thread de trafic (récepteur / serveur). Donc, -t
fait quelques petites choses, il définit le délai d’expiration du thread d’écoute et les temps des threads de trafic. Le thread d’écoute est le parent du thread de trafic, il doit donc attendre que les threads de trafic se terminent avant de pouvoir se terminer.
Exemple: Disons que l’on lance iperf -s -t 30
ce qui permettra à l’auditeur de restr en place pendant 30 secondes. Si aucun client ne se présente dans les 30 secondes, le “serveur” se termine après 30 secondes. Mais si 20 secondes après le iperf -s -t 30
un client se connecte, par exemple iperf -c
, l’auditeur / le serveur restra ainsi 20 + 30 secondes avant de se terminer. (Remarque: le -t
du client n’est pas transmis au serveur afin que le server -t
soit égal ou supérieur aux clients -t
.)