개요

C로 개발된 이중화 소스를 수정하던 도중 ping을 보내 상태체크 하는 부분이 있었는데 ping 소스 자체를 직접 소켓으로

개발하니 오류가 많고 예외 상황도 많았다. 안정성이 중요한 서버개발이니 만큼 리눅스에서 제공하는 ping 명령어를

사용하기로 결정했는데 문제가 발생했다 ping [잘못된 주소]로 커맨드를 입력하면 당연히 ping이 안된다.

근데 ping 명령어 특성상 몇초간 기다린다. 그래서 바로바로 상태체크를 해줘야하는 소스에 맞지 않을거 같아서 명령어가

지연될시 명령어 호출을 취소하는법에 대해서 찾고 있었는데 timeout 명령어에 대해서 알 수 있었다.

 

timeout 명령어

명령어 형식은 아래와 같다.

timeout [time] [command]

time에는 몇초가 지나면 명령어가 취소될지와 command에는 명령어가 들어가면 된다.

그래서 기존에 ping 8.8.8.1을 했을때 4~6초 동안 기다렸다가 failed를 리턴했던 명령어와 달리 

timeout 1 ping -c 8.8.8.1 1

위 명령어를 사용시 1초동안만 지켜보다가 바로 실패 혹은 성공을 리턴해주기 때문에 성공여부와 상관없이 빠르게 결과가 

필요한 명령어를 사용할때 유용하게 쓰일듯 하다.

반응형
복사했습니다!