GNU coreutils timeout
명령은 특정 스크립팅 상황에 매우 편리하여 명령이 빠르게 실행되면 명령 출력을 사용하고 시간이 너무 오래 걸리면 생략 할 수 있습니다.
timeout
POSIX 지정 유틸리티 만 사용 하는 기본 동작을 어떻게 추정 할 수 있습니까?
(나는의 조합을 포함 할 수있다 생각하고 wait
, sleep
, kill
및 그 밖의 무엇, 그러나 아마 내가 쉽게 접근 방식을 누락 알고있는 사람.)
3
쉘 스크립트에서 시간 초과를 참조하십시오 . 그러나 POSIX 이전 시스템으로의 이식성을 요청했으며 백그라운드 프로세스와 관련된 일부 솔루션이 제외하는 stdin 및 stdout을 보존해야한다는 요구 사항 때문에이를 복제본으로 간주하지 않습니다.
—
Gilles 'SO- 악한 중지'
command & pid=$! ; sleep 5 && kill $pid
@Pandya는 경미한 경합 조건을 도입하지 않습니다. 여기서
—
와일드 카드
command
빠르게 완료 pid
되면 kill
명령이 실행 되기 전에 다른 프로세스가 시작될 가능성 이 적습니까? 나는 프로덕션 코드에서 그것을 원하지 않을 것입니다 ....
해결하려는 근본적인 문제에 대해 더 자세히 설명해 주시겠습니까? 왜
—
James Youngman
timeout
프로그램을 컴파일 하고 사용하지 않습니까?
@JamesYoungman, 이식성에 대한 스크립트 작성에 익숙하지 않은 것 같습니다 . POSIX 호환 (또는 POSIX 지정) 방식으로 무언가를 요청하는 것은 이식성 이 있다는 것을 의미 합니다. 바이너리로 소스 코드를 컴파일하는 것은 단호하게 이식 할 수 없습니다, 그리고 기업 보안 정책에 따라, 당신은 설치 컴파일러가 없을 수 있습니다 전혀 프로덕션 서버에 있습니다.
—
와일드 카드