在 bash 中终止多个后台进程?

问题描述

我正在尝试从 binance 转储多个符号对的交易数据,例如doge/btc、ada/btc 等

我可以背景,因此:

1 - With Xcode closed (Important) Go to finder -> Applications
2 - Right Click on Xcode and select "Get Info"
3 - On the info panel check "Open using Rosetta"
4 - Double Click in the bottom large preview of the info panel.
5 - Actions to install Rosetta will be responsive.

但是如何终止它们呢?

有没有什么聪明的方法,比如终止父进程?

解决方法

我认为正确的答案很大程度上取决于您当前系统的实施/使用方式。

在最基本的脚本级别,您可以简单地对所有 kill 进程运行 wscat;但这可能太笼统了,具体取决于细节。

稍微好一点,在 BASH 脚本中,直接在创建这些进程之后,您就可以以 $! 的形式访问它们的 PID。您可以将这些 PID 存储在一个变量或文件中,然后将它们用于 kill 每个单独的进程。

如果您的目标是比这更巧妙,您可能需要研究以下内容: SIGCHLD 信号,变成 subreaper (prctl PR_SET_CHILD_SUBREAPER),在 PID 命名空间 (unshare --pid ...) 中作为 PID 1 运行,诸如此类。