Shell脚本在退出时杀死后台进程

时间:2012-01-17 23:40:12

标签: bash kill background-process

我有一个这样的脚本:

#!/bin/sh
exec ./cmd1&
exec ./cmd2

如果我杀死脚本只会导致cmd2被杀,cmd1会继续运行。 是否有可能两个进程自动退出?

1 个答案:

答案 0 :(得分:3)

不要做第二个exec(第一个也是多余的),但让shell等待它。杀死shell可能会杀死命令;如果没有 - 那么:

    trap 'kill -15 $kids; exit 143' TERM
    cmd1 &
    kids=$!
    cmd2 &
    kids="$kids $!"
    wait