감시 명령의 최소 간격은 얼마입니까?
매뉴얼 페이지와 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밀리초가 추가된다는 의미입니다.