2010-03-18 137 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 – 2010-03-18 12:12:23

+0

@丹尼斯好点,修正 – Andy 2010-03-18 12:35:17