English

wait — 자식 프로세스 종료 대기

Linux / 서비스 및 프로세스 관리 / wait.html

서비스 및 프로세스 관리원문등록 2026-10-20T09:00:00+09:00

셸이 시작한 자식 프로세스가 끝날 때까지 기다리는 내장 명령.

기본 정보

명령어 이름wait
한 줄 소개셸이 시작한 자식 프로세스가 끝날 때까지 기다리는 내장 명령.
제공Bash 및 POSIX 셸 내장
공식 문서https://www.gnu.org/software/bash/manual/html_node/Job-Control-Builtins.html
지원 운영체제Linux, macOS, BSD
설치 여부기본 탑재 (셸 내장)
분류리눅스 서비스·프로세스 (태그: 프로세스·자원 관리 (태그: 작업 제어, 동기화, 스크립트))

이 명령어는 무엇인가?

wait는 백그라운드로 실행한 자식 프로세스가 끝날 때까지 스크립트 실행을 멈춥니다.

PID나 작업 번호를 지정하면 해당 대상만 기다리고, 종료 상태를 반환값으로 돌려줍니다.

어떤 문제를 해결하는가?

  • 병렬 작업이 모두 끝난 뒤 다음 단계를 실행합니다.
  • 백그라운드 작업의 종료 코드를 확인합니다.
  • 임시 파일을 정리하기 전에 작업 완료를 보장합니다.
  • 여러 서버에 동시에 명령을 보내고 결과를 모읍니다.

주요 기능

전체 대기

인자 없이 실행하면 모든 자식 프로세스를 기다립니다.

  • 활용 상황: 병렬 작업을 모두 기다릴 때
  • 얻는 결과: 모든 자식이 끝난 뒤 진행
  • 제한 사항: 종료 코드는 마지막 대상 기준

특정 PID 대기

PID를 지정하면 그 프로세스만 기다립니다.

  • 활용 상황: 특정 작업의 완료가 필요할 때
  • 얻는 결과: 해당 프로세스의 종료 상태
  • 제한 사항: 존재하지 않는 PID면 즉시 오류

종료 코드 수집

$?로 각 대기 대상의 결과를 확인합니다.

  • 활용 상황: 실패를 구분해야 할 때
  • 얻는 결과: 작업별 성공·실패 판단
  • 제한 사항: 여러 개를 동시에 기다리면 마지막 값만 남음

설치 및 실행

설치 여부 확인

help wait

man bash # wait is a shell builtin

실제 사용 예제

모든 작업 대기

백그라운드 작업이 끝날 때까지 기다립니다.

# Wait for every background job
wait

PID 대기

특정 PID가 끝날 때까지 기다립니다.

# Wait for a specific child
bg_pid=$!
wait $bg_pid

병렬 작업 동기화

여러 작업을 띄우고 모두 기다립니다.

# Run three jobs in parallel, then wait
for h in web1 web2 web3; do ssh $h uptime & done
wait