SHELL 의 비동기 실행

2385 단어 linux독서 노트
비동기 실행
때때로 우 리 는 여러 가지 작업 을 동시에 수행 하 기 를 원 합 니 다. 이 는 부모 스 크 립 트 와 여러 개의 키 스 크 립 트 의 로드 문제 와 관련 되 며, 하위 스 크 립 트 는 부모 스 크 립 트 가 실 행 될 때 다른 추가 작업 을 수행 할 수 있 습 니 다.그러나 일련의 스 크 립 트 가 이런 방식 으로 실 행 될 때 부모 스 크 립 트 와 하위 스 크 립 트 의 조 화 를 확보 하 는 것 이 문제 입 니 다.다음 상황 을 생각해 보 세 요. 부모 스 크 립 트 와 하위 스 크 립 트 가 서로 의존 하면 하나의 스 크 립 트 는 다른 스 크 립 트 작업 이 완 료 될 때 까지 기 다 려 야 자신의 작업 을 계속 할 수 있 습 니 다.
이상 의 상황 에 대해 bash 는 내 장 된 명령 을 제공 하여 비동기 실행 을 관리 하 는 데 도움 을 주 었 습 니 다.wait 명령 은 지정 한 프로 세 스 (예 를 들 어 하위 스 크 립 트) 가 끝 날 때 까지 부모 스 크 립 트 를 중단 시 킬 수 있 습 니 다.
wait 명령
다음은 두 가지 예 를 통 해 wait 명령 의 사용 을 보 여 줍 니 다.
#!/bin/bash

#
#     (wait)    -   
#

echo "   :     .."
./async-child &

#    shell   $!   pid  ,         ID
pid=$!  

echo "   :   (PID=${pid})   "

echo "   :     .."
sleep 2

echo "   :    ,         .."
wait ${pid}

echo "   :      ,     .."
echo "   :       。    !"

다음은 하위 스 크 립 트 입 니 다:
#!/bin/bash

#
#     (wait)    -   
#

echo "   :    .."
sleep 5
echo "   :     。    !"

스 크 립 트 실행, 다음 출력 생 성:
[fbap:/home/fbap/usertmp]>./async-parent.sh
   :     ..
   :   (PID=42620)   
   :     ..
   :    ..
   :    ,         ..
   :     。    !
   :      ,     ..
   :       。    !

좋은 웹페이지 즐겨찾기