Quel est le plus petit intervalle de la commande de watch?
La page Man et les recherches Google n'indiquent pas ce que la limite inférieure d'intervalle la plus petite est. J'ai trouvé à travers l'expérimentation, il peut être inférieur à 1 seconde.
Pour tester, j'ai couru cette commande exécutée sur un pare-feu:
watch -n 0.1 cat /sys/class/net/eth1/statistics/rx_bytes
Il met clairement la mise à jour plus rapide qu'une seconde, mais ce n'est pas clair s'il fait vraiment des mises à jour de 100 ms.
De quelle plate-forme êtes-vous sur?
Sur My Linux (Ubuntu 14.10), le Homme dit:
-n, --interval seconds
Specify update interval. The command will not allow quicker
than 0.1 second interval, in which the smaller values are con‐
verted.
Je viens de tester cela avec un script appelant un programme C imprimant l'horodatage avec microsecondes et fonctionne.
En fait, vous êtes à la limite. La page de l'homme Do Fournissez une valeur minimale (au moins sur ma version Linux 2009). Ici ça va:
-n, --interval seconds
Specify update interval. The command will not allow quicker
than 0.1 second interval, in which the smaller values are converted.
Vous pouvez probablement vérifier cela en utilisant date
via watch
:
$ watch -n0.1 date +'%H:%M:%S:%N'
Si vous regardez le premier chiffre dans le dernier champ (Nanosecondes), vous le verrez rapidement, ce qui signifie que pour chaque watch
itération, ~ 100 ms sont ajoutés.
watch
La commande est incluse dans PROCPS utilitaires.
La plus petite valeur pour -n
option est 0.1
, c'est codé en dur Regardez la source (voir ligne 171 - 172) :
case 'n':
{
char *str;
interval = strtod(optarg, &str);
if (!*optarg || *str)
do_usage();
if(interval < 0.1)
interval = 0.1;
if(interval > ~0u/1000000)
interval = ~0u/1000000;
}
break;