2010-03-18 8 views
2

백그라운드에서 몇 가지 명령을 실행하는 BASH 스크립트가 있다고 가정합니다. 우리가 일을 마쳤 든 끝내 든, 언젠가는 우리 모두를 죽이고 싶다.모든 비동기 프로세스를 죽이는 방법

function command_doing_nothing() { 
    sleep 10 
    echo "I'm done" 
} 

for ((i = 0; i < 3; i++)); do 
    command_doing_nothing & 
done 

echo "Jobs:" 
jobs 

sleep 1 

# Now we want to kill them 

어떻게 백그라운드에서 실행하는 3 개 작업을 죽일 : 여기

은 예입니다? (이 스크립트는 자신의 쉘 인스턴스에서 실행되는 한)

답변

3

ALL 작업을 죽이고 :

for x in $(jobs -p); do kill $x; done 
+2

죽일'하지 마십시오 -9' 불필요한 때. http://speculation.org/garrick/kill-9.html –

+0

@Dennis 좋은 지적, 수정 됨 – Andy

관련 문제