Bash 에서 프로세스 기다리기

Bash에서 자식 프로세스가 끝날 때까지 기다릴 때는 wait을 사용한다.
$ help wait
wait: wait [-n] [id ...]
    Wait for job completion and return exit status.
    Waits for each process identified by an ID, which may be a process ID or a
    job specification, and reports its termination status.  If ID is not
    given, waits for all currently active child processes, and the return
    status is zero.  If ID is a a job specification, waits for all processes
    in that job's pipeline.
    If the -n option is supplied, waits for the next job to terminate and
    returns its exit status.
    Exit Status:
    Returns the status of the last ID; fails if ID is invalid or an invalid
    option is given.

만약 기다려야할 프로세스가 여러개라면 for문을 이용해서 처리할 수 있다.

#!/usr/bin/env bash


for i in $(seq 1 5)
 sleep 5 &
 echo "pids[$i]="${pids[$i]}

echo "waiting..."
for i in ${pids[*]}
 echo "waiting... $i"
 wait $i
 echo "done... $i"


이 블로그의 인기 게시물

SQLite에서 파일 크기 줄이기

OpenSSL supports Multi-threading

Google 서비스 계정 액세스토큰을 C/C++로 얻어내기