리눅스

sleep, wait, timeout 명령어 비교 및 사용법

변군이글루 2024. 11. 13. 10:10
반응형

sleep, wait, timeout 명령어 비교 및 사용법

sleep, wait 그리고 timeout 명령어는 모두 프로세스의 실행을 제어하는 데 사용됩니다.

차이점 요약

명령어 용도 주요 차이점
sleep 주어진 시간 동안 일시 중지하거나 대기 지정된 시간 동안 아무 작업도 하지 않고 대기합니다.
wait 백그라운드에서 실행 중인 프로세스가 종료될 때까지 기다림 주로 백그라운드 작업의 종료를 기다리는 데 사용됩니다. 종료 상태 코드도 반환
timeout 지정된 시간 동안 명령어 실행 후 종료 주어진 시간이 지나면 명령어를 강제로 종료합니다.

sleep 명령어

용도 : 주어진 시간 동안 프로그램이나 스크립트의 실행을 일시 중지(대기)시키는 데 사용됩니다.

sleep <시간>
  • <시간> : 대기할 시간 (초, 분, 시간 등으로 지정 가능)

wait 명령어

용도 : 백그라운드에서 실행 중인 프로세스가 종료될 때까지 기다리는 데 사용됩니다. 지정한 프로세스 ID(PID)에 대한 종료 상태를 기다립니다.

wait [PID]
  • [PID] : 기다릴 프로세스 ID (선택적, 지정하지 않으면 모든 백그라운드 작업을 기다립니다).

timeout 명령어

용도 : 명령어가 지정된 시간 내에 완료되지 않으면 강제로 종료하는 데 사용됩니다.

timeout <시간> <명령어> [인수...]
  • <시간> : 명령어가 실행될 최대 시간 (초, 분, 시간 등으로 지정 가능)
  • <명령어> : 실행할 명령어

사용 예시

sleep 명령어

5초 동안 대기

sleep 5

2분 동안 대기

sleep 2m

3일 동안 대기

sleep 3d

10초 대기 후 메시지 출력

sleep 10 && echo "10초 대기 완료"

wait 명령어

백그라운드에서 5초 대기 후 종료하는 프로세스

sleep 5 &  # 백그라운드에서 실행
wait $!    # 해당 프로세스가 종료될 때까지 기다림
echo "백그라운드 작업 종료됨"

여러 백그라운드 작업 대기

sleep 5 &  # 백그라운드 작업 1
sleep 10 & # 백그라운드 작업 2
wait       # 모든 백그라운드 작업이 종료될 때까지 기다림

timeout 명령어

5초 동안만 curl 명령어 실행

timeout 5s curl -I https://www.sangchul.kr

10초 동안만 ping 명령어 실행

timeout 10s ping 8.8.8.8

3초 동안 sleep 명령어 실행하고 초과 시 종료

timeout 3s sleep 5

curl 명령어가 10초 이상 걸리면 종료

timeout -k 15s 10s curl https://www.sangchul.kr

 

참고URL

- Ubuntu Manuals : sleep

- Ubuntu Manuals : wait

- Ubuntu Manuals : timeout

 

728x90
반응형