gpt4 book ai didi

bash - 如何杀死shell的所有子进程?

转载 作者:行者123 更新时间:2023-12-04 19:39:43 28 4
gpt4 key购买 nike

我正在编写一个 bash 脚本,它做了几件事。

一开始它会启动几个监控脚本,每个脚本都运行一些其他工具。

在我的主脚本结束时,我想杀死所有从我的 shell 中产生的东西。

所以,它可能看起来像这样:

#!/bin/bash

some_monitor1.sh &
some_monitor2.sh &
some_monitor3.sh &

do_some_work
...

kill_subprocesses

问题是这些监视器中的大多数都会产生它们自己的子进程,所以这样做(例如): killall some_monitor1.sh不会总是有帮助。

有没有其他方法来处理这种情况?

最佳答案

pkill -P $$

会适合(只是杀死它自己的后代)

编辑:我投了反对票,不知道为什么。无论如何,这里是 -P 的帮助
   -P, --parent ppid,...
Only match processes whose parent process ID is listed.

$$process id of the script itself

关于bash - 如何杀死shell的所有子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70139583/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com