timeout

GNU coreutil에 포함된 timeout 유틸리티는 명령을 실행하고
지정된 시간 간격 이후에도 실행중이면 프로세스를 종료한다.

설치

GNU를 포함하는 OS를 사용하고 있으면 설치하지 않아도 된다.
macOS는 포함하지 않아서 [[/tool/homebrew]]{homebrew}로 설치했다.

$ brew install coreutils

설치하기 힘든 상황이라면 간단하게라도 이런 방법이 있다.

# .sh
bash -c "$BIN_DIR/$testcase 2>&1" > $output 2>&1 &
pid=$!
( sleep 10; kill -TERM $pid ) > /dev/null 2>&1 &

Usage

$ timeout [option] duration command [arg]…

$ timeout 10s bash -c "( $BIN_DIR/$testcase )" > $output 2>&1 &

duration

플래그 단위
s 초 (기본 값)
m
h
d

옵션

레퍼런스 참고

종료코드

그 외 명령의 종료코드를 따름

Reference