반응형
프로세스 기다리기, wait
wait
명령어는 리눅스 및 유닉스 시스템에서 하나 이상의 백그라운드 프로세스가 종료될 때까지 현재 쉘 스크립트나 쉘 명령어의 실행을 일시 정지시키는 데 사용됩니다. 이 명령어는 스크립트 내에서 비동기적으로 실행된 프로세스들의 완료를 기다리고, 그 결과에 따라 다음 작업을 진행하기 위해 사용됩니다.
사용법
wait [PID...]
[PID...]
는 대기할 하나 이상의 프로세스 ID입니다. PID를 지정하지 않으면wait
명령어는 현재 쉘 스크립트의 모든 자식 프로세스가 종료될 때까지 기다립니다.
예시
- 특정 PID가 종료될 때까지 대기:
sleep 30 &
# Sleep 프로세스의 PID를 얻습니다.
PID=$!
wait $PID
echo "Sleep 프로세스가 완료되었습니다."
- 모든 백그라운드 프로세스가 종료될 때까지 대기:
sleep 30 &
sleep 45 &
# 모든 백그라운드 프로세스가 완료될 때까지 기다립니다.
wait
echo "모든 백그라운드 프로세스가 완료되었습니다."
사례
사용자가 터미널에서 sleep 30 &
명령어를 실행한 것을 보여줍니다. sleep
명령어는 시스템에게 지정된 시간(이 경우에는 30초) 동안 아무것도 하지 않고 기다리라고 지시합니다. &
기호는 명령어를 백그라운드에서 실행하라는 것을 의미합니다. 명령어가 백그라운드에서 실행되고 있음을 알려주는 작업 번호 [2]
와 프로세스 ID 10075
가 표시되어 있습니다.
이 상황에서 wait
명령어를 사용하여 sleep
명령어가 완료될 때까지 기다릴 수 있습니다. 예를 들어, 사용자가 wait 10075
를 실행하면, 해당 sleep
명령어의 프로세스가 종료될 때까지 쉘은 다른 입력을 받지 않고 대기 상태에 있게 됩니다. 30초 후, sleep
프로세스가 완료되면 쉘은 다시 사용자의 입력을 받을 준비가 됩니다.
주의사항
wait
명령어는 현재 쉘 세션에서 시작된 자식 프로세스에만 적용됩니다.- 이 명령어는 주로 쉘 스크립트 내에서 사용되며, 비동기 프로세스들의 실행 완료를 동기적으로 처리해야 할 때 유용합니다.
정리
wait
명령어는 하나 이상의 백그라운드 프로세스가 종료될 때까지 쉘 스크립트의 실행을 일시 정지시킵니다.- 특정 PID를 지정하거나, 모든 자식 프로세스의 종료를 기다릴 수 있습니다.
- 스크립트에서 비동기 작업의 완료를 동기적으로 관리할 필요가 있을 때 사용됩니다.
반응형
'Linuxpia > Linux 명령어' 카테고리의 다른 글
[리눅스 명령어] 콘솔 상에서 간단한 메시지 보내기, write (154) | 2024.02.17 |
---|---|
[리눅스 명령어] 사용자 알기, who (106) | 2024.02.16 |
[리눅스 명령어] 모든 사용자에게 메시지 보내기, wall (108) | 2024.02.14 |
[리눅스 명령어] 시스템에 접속한 사용자 상황 알아보기, w (80) | 2024.02.13 |
[리눅스 명령어] 로그인된 사용자 보여주기, users (100) | 2024.02.12 |