web-dev-qa-db-fra.com

Regarder la commande la plus petite -n intervalle

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.

27
Kyle

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.

25
nlu

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.

11
John WH Smith

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;
11
cuonglm