셸에서 명령에 대한 제한 시간 설정

셸에서 명령에 대한 제한 시간 설정

쉘 스크립트를 작성할 때 때때로 명령에 대한 타임 아웃 기간을 설정하고 싶을 때가 있습니다. 명령이 오랫동안 실행되면 강제로 종료됩니다. 다음 방법을 사용할 수 있습니다.

timeout 3 sleep 30

3 초간 sleep이 실행되면 종료됩니다.

제한 시간 명령 소개

지정된 명령을 실행하십시오. 지정된 시간 후에도 실행 중이면 프로세스를 종료하십시오. 프로그램의 실행 시간을 제어하는 ​​데 사용됩니다.

명령

timeout [选项] 数字[后缀] 命令 [参数]...

접미사 "s"는 초를 의미합니다 (기본값, "m"은 분, "h"는 시간, "d"는 일을 의미합니다.)

옵션 소개

长选项必须使用的参数对于短选项时也是必需使用的。
  -s, --signal=信号
        指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。
        查看"kill -l"以获得信号列表
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

如果程序超时则退出状态数为124,否则返回程序退出状态。
如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。
对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。

추천

출처blog.51cto.com/13447608/2561992