watch 명령 최소 -n 간격

watch 명령 최소 -n 간격

감시 명령의 최소 간격은 얼마입니까?

매뉴얼 페이지와 Google 검색에서는 최소 간격의 하한이 무엇인지 나타내지 않습니다. 1초 미만일 수도 있다는 것을 실험을 통해 알아냈습니다.

테스트하기 위해 방화벽에서 다음 명령을 실행했습니다.

watch -n 0.1 cat /sys/class/net/eth1/statistics/rx_bytes

분명히 업데이트는 1초보다 빠르지만 100ms 업데이트가 실제로 일어나고 있는지는 확실하지 않습니다.

답변1

어떤 플랫폼을 사용하고 있나요?

내 Linux(Ubuntu 14.10)에서매뉴얼 페이지설명하다:

 -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.

방금 마이크로초 단위로 타임스탬프를 인쇄하는 C 프로그램을 호출하는 스크립트를 사용하여 이것을 테스트했는데 제대로 작동했습니다.

답변2

watch명령은 다음에 포함되어 있습니다.프로세스공공 시설.

옵션의 최소값은 -n이며 0.1하드코딩되어 있습니다.소스 코드 보기(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;

답변3

실제로 한계에 도달했습니다. 매뉴얼 페이지하다최소값을 제공합니다(적어도 2009 Linux 버전에서는). 문제는 다음과 같습니다.

-n, --interval seconds
Specify update interval. The command will not allow quicker 
than 0.1 second interval, in which the smaller values are converted.

date다음을 통해 이를 확인할 수 있습니다 watch.

$ watch -n0.1 date +'%H:%M:%S:%N'

마지막 필드의 첫 번째 숫자(나노초)를 보면 빠르게 증가하는 것을 볼 수 있습니다. 이는 watch각 반복에 약 100밀리초가 추가된다는 의미입니다.

관련 정보