불필요한 지연 없이 Bash에서 명령을 시간 초과하는 방법

Bulpil Yohan Jiyeon Eobs I Basheseo Myeonglyeong Eul Sigan Chogwahaneun Bangbeob



Bash에서 때때로 완료하는 데 오랜 시간이 걸리는 명령을 실행해야 할 수 있으며 무한정 완료될 때까지 기다리기를 원하지 않을 수 있습니다. 이 문제에 대한 한 가지 해결책은 명령이 실행될 수 있는 시간을 제한하는 시간 초과 명령을 사용하는 것입니다. 이 기사에서는 불필요한 지연 없이 Bash에서 명령을 시간 초과하는 방법에 대해 설명합니다.

Bash에서 명령 시간 초과

Bash에서 명령을 시간 초과하려면 다음을 사용할 수 있습니다. '시간 초과' 명령. 'timeout' 명령은 모든 시스템에서 기본적으로 사용할 수 없지만 대부분의 Linux 배포판에서 패키지 관리자를 사용하여 설치할 수 있습니다. 다음은 'timeout' 명령의 구문입니다.







타임아웃 [ 옵션 ] 기간 명령 [ 아르그 ]


여기서 'OPTION'은 시간 초과 명령의 동작을 지정하는 선택적 인수이고, 'DURATION'은 실행할 명령에 대한 시간 제한이며, 'COMMAND [ARG]'는 실행할 명령 및 해당 인수입니다.



예를 들어, 'sleep' 명령을 5초 동안 실행하고 싶지만 3초 후에 명령을 시간 초과하고 싶다고 가정하고 다음은 예제 셸 스크립트입니다.



#!/빈/배시
에코 '3초의 시간 초과로 절전 명령 시작 중...'
타임아웃 3초 5초
에코 '수면 명령이 완료되었습니다.'


여기서는 타임아웃 기간을 3초로 지정하고 'sleep' 명령의 기간을 5초로 지정했습니다. 'timeout' 명령은 'sleep' 명령이 일반적으로 5초 동안 실행되더라도 3초 후에 'sleep' 명령을 중지합니다.






'timeout' 명령을 사용할 때 불필요한 지연을 방지하기 위해 '-k' 옵션을 사용할 수 있습니다. '-k' 옵션은 제한 시간을 초과하는 경우 명령에 보낼 신호를 지정합니다. 이 신호는 명령이 정상적으로 완료될 때까지 기다리지 않고 즉시 종료되도록 합니다.

예를 들어, 'sleep' 명령을 5초 동안 실행하고 싶지만 3초 후에 명령을 시간 초과하고 제한 시간을 초과하면 SIGINT 신호를 보내려고 한다고 가정해 보겠습니다. 다음 명령을 실행하여 이를 수행할 수 있습니다.



#!/빈/배시
에코 '3초의 시간 초과 및 2초 후 SIGINT 신호로 절전 명령 시작'
시간 초과 -k 2초 3초 절전 5초
에코 '
명령 완성된. '


여기에서는 제한 시간을 3초로 지정하고 제한 시간을 초과하면 SIGINT로 전송되는 신호를 지정했습니다. '-k 2s' 옵션은 SIGINT 신호가 제한 시간 2초 후에 전송되어야 함을 지정합니다.

결론

Bash의 명령 시간 초과는 명령을 보다 효율적으로 실행하고 불필요한 지연을 방지하는 데 도움이 되는 유용한 도구입니다. 'timeout' 명령과 '-k' 옵션을 사용하면 명령이 실행될 수 있는 시간을 제한하고 제한 시간을 초과하면 즉시 종료하라는 신호를 보낼 수 있습니다. 이렇게 하면 시간을 절약하고 스크립트를 보다 효율적으로 실행할 수 있습니다.