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

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

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

最佳答案

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

pkill -P $PID

其中$pid是父进程的pid。
您可以source这个run_1.sh命令,以便它在同一个shell中执行(这可能会导致副作用,因为现在所有脚本都将共享同一个作用域)。
source run_1.sh
source run_2.sh

09-10 05:26
查看更多