본문 바로가기

리눅스

wait 명령어

728x90

wait 명령어

wait 명령어는 쉘 스크립트에서 사용할 수 있는 내장 명령어 중 하나입니다. 이 명령어는 지정된 모든 작업이 완료될 때까지 대기합니다. 그리고 모든 작업이 완료된 후에는 wait 명령어가 종료됩니다.

 

wait 명령어는 지정된 시간 동안 명령어의 실행을 일시 중지하는 명령어입니다. wait 명령어는 다음과 같은 경우에 유용합니다.

  • 지정된 시간 후에 명령어를 실행해야 하는 경우
  • 명령어의 실행 결과를 확인하기 위해 잠시 기다리는 경우
  • 명령어의 실행을 제어하기 위해 잠시 기다리는 경우

wait 명령어 설치

wait 명령어는 대부분의 Linux 배포판에 기본적으로 설치되어 있습니다. 만약 설치되어 있지 않은 경우 아래와 같이 설치할 수 있습니다.

  • CentOS
yum install procps
  • Ubuntu
apt install procps

wait 명령어 기본 구문

wait [job ID or process ID ...]
  • 옵션 : wait 명령어의 동작을 조정하는 옵션입니다.
  • 시간 : 지정된 시간 동안 명령어의 실행을 일시 중지합니다. 시간은 초 단위로 지정합니다.

wait 명령어 주요 옵션

wait 명령어의 주요 옵션은 다음과 같습니다.

  • -n : wait 명령어의 실행을 일시 중지하지 않고 즉시 실행합니다.
  • -s : wait 명령어의 실행을 일시 중지하고 화면을 비활성화합니다.
728x90

사용 예시

  • wait_sample1.sh 파일 작성
vim wait_sample1.sh
#!/bin/bash

# 백그라운드에서 실행되는 작업 실행
sleep 10 &
echo "백그라운드 작업 시작"

# 작업이 완료될 때까지 대기
wait
echo "백그라운드 작업 완료"

sleep 명령어를 백그라운드에서 실행하고 있습니다. 이 작업은 10초 동안 대기하고 종료됩니다. 그리고 wait 명령어를 사용하여 작업이 완료될 때까지 대기하고 있습니다. 작업이 완료된 후에는 "백그라운드 작업 완료" 메시지가 출력됩니다.

 

  • wait_sample2.sh 파일 작성
vim wait_sample2.sh
#!/bin/bash

# 프로세스 1을 백그라운드에서 실행
sleep 5 &
PID1=$!

# 프로세스 2를 백그라운드에서 실행
sleep 3 &
PID2=$!

# 프로세스 1 및 프로세스 2가 완료될 때까지 대기
wait $PID1 $PID2

echo "모든 프로세스가 완료되었습니다."

이 스크립트는 두 개의 sleep 명령어를 백그라운드에서 실행하고, 그런 다음 wait 명령어를 사용하여 두 프로세스가 완료될 때까지 기다립니다. wait 명령어를 사용하면 프로세스 간의 순서와 동기화를 관리할 수 있으며, 스크립트가 다음 단계로 진행하지 않고 필요한 모든 프로세스가 완료될 때까지 기다릴 수 있습니다.

 

wait 명령어는 복잡한 스크립트 또는 프로세스 관리 작업에서 유용하게 사용됩니다.

 

728x90