【问题标题】:Terminating multiple background processes in bash?在bash中终止多个后台进程?
【发布时间】:2021-03-06 20:06:13
【问题描述】:

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

我可以背景,因此:

wscat -c wss://stream.binance.com:9443/ws/dogebtc@trade > doge.txt &
wscat -c wss://stream.binance.com:9443/ws/adabtc@trade > ada.txt &

但是如何全部终止呢?

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

【问题讨论】:

  • pkill wcat,如果你的系统有?

标签: bash process terminate


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 2014-07-12
    • 2015-09-05
    相关资源
    最近更新 更多