我有一个名为run.sh的shell脚本。在其中,我可以调用其他shell脚本,如:
./run_1.sh
./run_2.sh
.........
如果我通过./run.sh调用脚本,我发现实际上它将使用不同的PID顺序调用脚本内的不同任务(即run_1.sh将是一个任务而run_2.sh将是另一个任务) 。这使我无法使用一个“kill”命令终止整组任务,或者通过运行“./run.sh&”在后台运行整组任务。 那么有没有办法像整个任务一样运行脚本?
答案 0 :(得分:4)
pkill
可用于使用-P
选项杀死进程的子进程。
pkill -P $PID
其中$ PID是父进程的PID。
您可以source
run_1.sh
命令,以便它在同一个shell 中执行(这可能会导致副作用,因为现在所有脚本都将共享相同的范围)< / em>的
source run_1.sh
source run_2.sh