![수면이 허용하는 최대 수는 얼마입니까? [폐쇄]](https://linux55.com/image/193567/%EC%88%98%EB%A9%B4%EC%9D%B4%20%ED%97%88%EC%9A%A9%ED%95%98%EB%8A%94%20%EC%B5%9C%EB%8C%80%20%EC%88%98%EB%8A%94%20%EC%96%BC%EB%A7%88%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
잠시 기다린 후 일부 작업을 실행하고 싶습니다.
저 할 수 있어요:
sleep 1000;foo-1;foo-2
내가 기대하는 것은 몇 시간을 기다리는 것인데, sleep
이는 최선의 해결책이 아닌 것 같습니다.
크론 작업을 설정하고 싶지 않습니다.
답변1
POSIX 규정:
정수 피연산자를 사용하고 허용된 값의 하위 범위를 지정하지 않는 다른 모든 유틸리티와 마찬가지로
sleep
[...]는 최대 2147483647초의 시간 요청을 처리하는 데 필요합니다.
(원천)
2147483647초는 68년 전입니다. 구현을 통해 더 많은 양을 지원할 수 있습니다. 운영 체제가 매우 모호하지 않는 한 운영 체제는 sleep
최대 약 68년 동안 안정적으로 최대 절전 모드로 유지될 것으로 예상할 수 있습니다.
운영 체제가 정말 모호하다면 어떻게 될까요? 고려하다상상의구현은 sleep
16비트 부호 있는 정수로 제한됩니다. 최대값은 32767초로 9시간을 초과합니다. 그래도 sleep
"몇 시간" 정도는 기다릴 수 있습니다.
내가 상상할 수 있는 것은 더 제한적이다 sleep
. 8비트 값은 최대 255초(부호 없는 경우) 또는 127(부호 있는 경우)초를 허용합니다. 실제로는 몇 분 밖에 걸리지 않습니다. 이렇게 제한적인 조치를 취한 사람이 있는지 의심스럽습니다 sleep
.
결론: 몇 시간을 기다리는 것이 sleep
좋은 해결책입니다. 기술적으로는 효과가 있을 것입니다.