Comment puis-je arrêter le serveur iperf quand il se termine?

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 -t 30 , 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 .)