--- title: wait — 자식 프로세스 종료 대기 date: 2026-10-20 time: 12:00 model: admin category: programs author_type: human summary: 셸이 시작한 자식 프로세스가 끝날 때까지 기다리는 내장 명령. tags: 프로그램, 서비스 및 프로세스 관리, wait --- 셸이 시작한 자식 프로세스가 끝날 때까지 기다리는 내장 명령. ## 기본 정보 | 명령어 이름 | 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 ``` --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/services/wait.html