1

我有一个名为 run.sh 的 shell 脚本。在其中,我可以调用其他 shell 脚本,例如:

./run_1.sh
./run_2.sh
.........

如果我通过./run.sh 调用脚本,我发现它实际上会使用不同的PID 依次调用脚本内的不同任务(即run_1.sh 将是一个任务,run_2.sh 将是另一个任务)。这使我无法使用一个“kill”命令杀死整个任务组,或者通过运行“./run.sh &”在后台运行整个任务组。那么有没有办法将脚本作为一个完整的任务来运行?

4

1 回答 1

4
  • pkill可用于杀死进程的子进程,使用该-P选项。

    pkill -P $PID
    

    其中 $PID 是父进程的 PID。

  • 您可以sourcerun_1.sh命令在同一个 shell 中执行(这可能会导致副作用,因为现在所有脚本都将共享相同的范围)

    source run_1.sh
    source run_2.sh
    
于 2013-02-24T22:31:07.467 回答