Linux

[Linux] wait - 프로세스 종료 대기

비번변경 2022. 11. 17. 18:34

wait

실행한 프로세스가 종료할 때까지 대기하는 명령어이다. 여러 작업을 동시에 실행할 때 모든 작업이 종료되기를 기다리거나, 특정 작업이 종료되는 것을 기다릴 때 사용한다.

 

 

백그라운드 작업 종료 대기

아래의 경우 command1, command2, command3이 모두 종료될 때까지 기다린 후, 모든 명령어가 실행이 종료되면 command4를 실행한다.

command1 &
command2 &
command3 &
wait

command4

 

 

특정 프로세스 종료 대기

특정 프로세스가 종료되기를 기다리고 싶다면 프로세스 ID(pid)를 전달하면 된다.

wait pid

# 예시
wait 100

 

 


내 경우에는, 특정 스크립트를 크론탭으로 주기적으로 실행하되 스크립트가 실행 중임을 나타내는 doing 파일이 있으면 실행을 안 하게끔 하고자 했다.

if [ ! -f "$doing_file" ]
then
    touch "$doing_file"
    cmd &
    cmd &
    wait
    rm "$doing_file"
fi

근데 스크립트 내에서 실행한 명령어가 동작 중임에도 doing 파일이 삭제되는 경우가 있어 확인이 필요했다. 제대로 못 사용한 걸 수도🤔…….

 

 

참고 문서

https://wikidocs.net/85880