Pour la boucle et le sommeil dans le script bash

J'ai un script bash avec une boucle for, je veux dormir pendant X secondes.

#!/bin/sh
for i in `seq 8`; 
    do ssh w$i 'uptime;
    ps -elf|grep httpd|wc -l;
    free -m;
    mpstat'; 
done &
pid=$!
kill -9 $pid

Dans Bash: sleep 2 dort pendant 2 secondes. Je veux tuer le pid automatiquement après 2 secondes.

Insérez sleep 2 avant la kill ligne.
ce n'est pas ce qu'il veut. Il voulait tuer for si elle prend trop de temps, ne pas attendre 2 secondes après exec puis la tuer
OP dit de le tuer si la boucle dure plus de 2 secondes. sleep 2 ferait que, précisément. Si le processus est terminé, kill serait un no-op (les chances de tous les autres processus de l'acquisition de la même PID serait slim).
Le done & ligne a une & qui bifurque les travaux de la boucle for comme un processus distinct. Ce processus est toujours en cours comme les prochaines lignes exécuter. Sans un sommeil, l'enfant l'exécution de la boucle for serait tué immédiatement.
Pourrait aussi faire un wrapper et ne timeout 2 script

OriginalL'auteur Tomas | 2014-04-03