我试图将交易数据从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 &
但是如何终止它们呢?
是否有一些聪明的方法,比如终止父进程?
我认为正确的答案在很大程度上取决于你当前系统的实现/使用方式。
在最基本的脚本级别,您可以简单地对所有wscat
进程运行kill
;但根据具体情况,这可能太笼统了。
稍微好一点,在BASH脚本中,直接在创建这些进程之后,您可以访问它们的PID作为$!
。您可以将这些pid存储在一个变量或文件中,然后使用它们来kill
每个单独的进程。
如果你的目标是比这更圆滑的东西,你可能会想看看这样的东西:SIGCHLD
信号,变成subreaper
(prctl
PR_SET_CHILD_SUBREAPER
),在PID命名空间(unshare --pid ...
)中作为PID 1运行,诸如此类。