如何杀死所有异步进程

时间:2010-03-18 10:48:32

标签: bash process asynchronous command kill

假设我们有一个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个工作?

1 个答案:

答案 0 :(得分:3)

要杀死所有作业(只要此脚本在其自己的shell实例中运行):

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