我有一个名为 run.sh 的 shell 脚本。在其中,我可以调用其他 shell 脚本,例如:
./run_1.sh
./run_2.sh
.........
Run Code Online (Sandbox Code Playgroud)
如果我通过 ./run.sh 调用脚本,我发现它实际上会使用不同的 PID 按顺序调用脚本内的不同任务(即 run_1.sh 将是一个任务,run_2.sh 将是另一个任务)。这使我无法使用一个“kill”命令杀死整组任务,或者通过运行“./run.sh &”在后台运行整组任务。那么有没有一种方法可以将脚本作为一个完整的任务来运行呢?
pkill可以使用-P选项来杀死进程的子进程。
pkill -P $PID
Run Code Online (Sandbox Code Playgroud)
其中 $PID 是父进程的 PID。
您可以在同一个 shell 中执行source该命令(这可能会导致副作用,因为现在所有脚本都将共享相同的作用域)。run_1.sh
source run_1.sh
source run_2.sh
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |