셸에서 명령에 대한 제한 시간 설정
쉘 스크립트를 작성할 때 때때로 명령에 대한 타임 아웃 기간을 설정하고 싶을 때가 있습니다. 명령이 오랫동안 실행되면 강제로 종료됩니다. 다음 방법을 사용할 수 있습니다.
timeout 3 sleep 30
3 초간 sleep이 실행되면 종료됩니다.
제한 시간 명령 소개
지정된 명령을 실행하십시오. 지정된 시간 후에도 실행 중이면 프로세스를 종료하십시오. 프로그램의 실행 시간을 제어하는 데 사용됩니다.
명령
timeout [选项] 数字[后缀] 命令 [参数]...
접미사 "s"는 초를 의미합니다 (기본값, "m"은 분, "h"는 시간, "d"는 일을 의미합니다.)
옵션 소개
长选项必须使用的参数对于短选项时也是必需使用的。
-s, --signal=信号
指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。
查看"kill -l"以获得信号列表
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果程序超时则退出状态数为124,否则返回程序退出状态。
如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。
对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。