前面总结了aws webrtc sdk-c项目中多进程启动master的shell脚本,具体参考:https://blog.csdn.net/zhang_jiamin/article/details/148616899

这次总结一下多进程启动viewer的shell脚本,以及过程中遇到的问题和解决方法。

实现说明:

1、获取 sid 和 uid(用于认证)
2、获取 ak/sk/token(多个 SN 共用一组密钥)
3、为每个 channel 启动 5 个 viewer,启动命令包含日志文件
4、使用 GNU parallel 控制并发(替代 wait + 手动计数)
5、所有错误集中到 error.log

首先,需要安装parallel,请参考:https://blog.csdn.net/zhang_jiamin/article/details/148815820

主要模块代码实现:

#!/bin/bashset -euo pipefail# ==== 登录获取 sid uid ====
login_response=$(curl -ks "$LOGIN_URL" \-H "Content-Type: application/x-www-form-urlencoded" \-H "GG-Pid: xxxxxxx" \-H "GG-Sign: xxxxxxxxxxxxxx" \-H "GG-Imei: xxxxxxxxxxxxxxx" \--data-urlencode "countryAbbr=CN" \--data-urlencode "countryCode=86" \--data-urlencode "email=${EMAIL}" \--data-urlencode "password=${PASSWORD}" \--data-urlencode "region=${REGION}" \--data-urlencode "type=1"
)sid=$(echo "$login_response" | jq -r '.data.sid')
uid=$(echo "$login_response" | jq -r '.data.uid')# ==== 获取 STS 密钥 ====
sts_curl_args=(-k -s "$STS_URL"-H "Content-Type: application/x-www-form-urlencoded"-H "GG-Sid: $sid"-H "GG-Uid: $uid"-H "GG-Pid: xxxxxxx"-H "GG-Sign: xxxxxxxxx"-H "GG-Imei: xxxxxxxxxxxx"--data-urlencode "refresh=true"
)for sn in "${SNS[@]}"; dosts_curl_args+=( --data-urlencode "sn[]=$sn" )
donests_response=$(curl "${sts_curl_args[@]}")ak=$(echo "$sts_response" | jq -r '.data.ak')
sk=$(echo "$sts_response" | jq -r '.data.sk')
token=$(echo "$sts_response" | jq -r '.data.token')# ==== 构造任务列表 ====
TASK_FILE="${BASE_DIR}/viewer_tasks.txt"
: > "$TASK_FILE"for channel in "${CHANNELS[@]}"; dofor i in $(seq 1 "$VIEWERS_PER_CHANNEL"); doecho "$channel $i" >> "$TASK_FILE"done
done# ==== 启动 viewer 的函数 ====

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86784.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86784.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/86784.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式(策略,工厂,单例,享元,门面)+模板方法

文章目录 前提策略模式思想实现如何拓展 模板方法存在的问题思想实现如何拓展 工厂模式实现问题及解决(解耦)配置文件方式使用注解 单例模式实现方式1,懒汉式(线程不安全)2,懒汉式(线程安全)3,饿汉式4,双重校验锁机制(面)5,静态内部类6,枚举 体现 享元模式门面模式 前提 假设做…

libarchive压缩解压文件

存在中文乱码问题 官网: libarchive - 用于读取和写入 tar、cpio、zip、ISO 和其他存档格式的 C 库和命令行工具 GitHub GitHub源码:Bluewind/libarchive: Multi-format archive and compression library (github.com) 参考: C archive_w…

AutoGPT,自主完成复杂任务

AutoGPT是一个开源的AI Agent项目,它的核心目标是让AI能够自主完成复杂任务,而不仅仅是回答单个问题。简单来说,它让AI具备了"自主思考和行动"的能力。 1. AutoGPT的核心概念 什么是AI Agent? AI Agent(智…

lambda、function基础/响应式编程基础

lambda表达式 只要是函数式接口(接口内只有一个未实现的方法,可以有其它默认方法),就可以用lambda表达式,也就是快速new一个匿名内部类。 实例化接口的三种方式 继承接口,并实现接口 直接实现匿名内部类 …

OpenTiny 体验官实操活动 | 快速体验 TinyVue 组件库的智能化交互能力

实验简介 通过体验基于标准 MCP 协议的 Web 智能组件库——TinyVue,开发者可以了解 AI 智能体控制 TinyVue 智能组件的各类行为。本次实验主要是在 TinyVue 官网上,开发者能够通过 AI 对话框,以语音或文字方式与网站组件进行互动&#xff0c…

秋招Day15 - Redis - 基础

什么是Redis? Redis是一种基于键值对的NoSQL数据库。 主要的特点是把数据放在内存中,读写速度相比于磁盘会快很多。 对于性能要求很高的场景,比如缓存热点数据,防止接口爆刷,都会用到Redis Redis还支持持久化&…

权限提升-工作流

一、Windows 权限提升 操作阶段 对应工具 说明 系统补丁与漏洞查询 systeminfo、WindowsVulnScan、wesng 提取 KB 补丁号,匹配 CVE 漏洞(如 CVE-2020-1054) 内核漏洞提权 MSF(local_exploit_suggester)、CVE 对…

c++手撕线程池

C手撕线程池 #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <time.h>#define LL_ADD(item, list) do{ \item->prev NULL; \item->next list; \if…

cocos creator 3.8 - 精品源码 - 六边形消消乐(六边形叠叠乐、六边形堆叠战士)

cocos creator 3.8 - 精品源码 - 六边形消消乐 游戏介绍功能介绍免费体验下载开发环境游戏截图免费体验 游戏介绍 六边形堆叠战士(六边形消消消)是一款脱胎于2048、1010&#xff0c;基于俄罗斯方块的魔性方块达人小游戏&#xff0c;可以多方向多造型消除哦&#xff01; 功能介…

3ds Max高效运行配置核心要素

要保障3ds Max流畅运行&#xff0c;需围绕计算性能、图形处理、数据吞吐三大维度构建硬件体系。不同工作环节对硬件需求存在显著差异&#xff1a; 一、核心组件配置原则 CPU&#xff1a;线程与频率双优化 建模/视口操作&#xff1a;依赖高主频&#xff08;建议≥4.0GHz&#…

实变与泛函题解-心得笔记【16】

文章目录 集合参考文献 集合 参考文献 《实变函数论与泛函分析》

道路交通标志检测数据集-智能地图与导航 交通监控与执法 智慧城市交通管理-2,000 张图像

道路交通标志检测数据集 &#x1f4e6; 已发布目标检测数据集合集&#xff08;持续更新&#xff09;&#x1f6a7; 道路交通标志检测数据集介绍&#x1f4cc; 数据集概览包含类别 &#x1f3af; 应用场景&#x1f5bc; 数据样本展示 YOLOv8 训练实战&#x1f4e6; 1. 环境配置 …

一、jenkins介绍和gitlab部署

一、jenkins介绍 jenkins和持续集成的关系 Jenkins 是实现持续集成&#xff08;CI&#xff09;最流行的自动化工具&#xff0c;它负责自动构建、测试和部署代码&#xff0c;确保团队能频繁且可靠地集成代码变更。 持续集成和敏捷开发的关系 敏捷开发是一种"快速迭代、…

k3s or kubesphere helm安装报错dial tcp 127.0.0.1:8080: connect: connection refused

在安装kubesphere时报错 Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version": dial tcp 127.0.0.1:8080: connect: connection refused helm.go:92: 2025-06-27 15:14:43.30908177 0000 UTC m0.033127135 [debug] Get "http://localh…

使用datafusion和tpchgen-rs进行完整的TPCH 22个查询的基准测试

1.从源码编译bench二进制文件。 下载datafusion源码, 解压到目录&#xff0c;比如/par/dafu&#xff0c; cd /par/dafu/benchmarks export CARGO_INCREMENTAL1 export PATH/par:/par/mold240/bin:$PATH因为mold默认使用并行编译&#xff0c;而这些二进制文件很大&#xff0c;如…

【软考高项论文】论信息系统项目的干系人管理

摘要 在信息系统项目管理里&#xff0c;干系人管理极为关键&#xff0c;它不仅决定项目成败&#xff0c;还对项目进度、质量和成本有着直接影响。本文结合作者2024年6月参与管理的信息系统项目&#xff0c;详细阐述了项目干系人管理的过程&#xff0c;分析了干系人管理与沟通管…

PB应用变为Rust语言方案

从PB(PowerBuilder)迁移到现代开发软件 PowerBuilder(PB)作为早期的快速应用开发工具,曾广泛应用于企业级数据库应用开发。随着技术发展,PB逐渐面临以下挑战,促使企业转向现代开发工具: 技术陈旧与维护困难 PB的架构基于较老的客户端-服务器模式,难以适应云原生、微…

【大模型】Query 改写常见Prompt 模板

下面对常见的几种“Query 改写”Prompt 模板进行中英文对照&#xff0c;并在注释中给出中文说明&#xff0c;帮助中国用户快速理解与使用。 根据调研&#xff0c;企业级 Query 改写模块需要覆盖多种常见场景&#xff0c;包括拼写纠错、中英混合、省略上下文、多义词扩展、专业术…

西门子S7-200 SMART PLC:小型自动化领域的高效之选

在工业自动化领域&#xff0c;小型PLC作为设备控制的核心组件&#xff0c;其性能、灵活性和性价比始终是用户关注的重点。西门子推出的S7-200 SMART可编程控制器&#xff0c;凭借对中国市场需求的精准把握&#xff0c;成为了小型自动化解决方案的标杆产品。本文将从产品亮点、技…

使用iperf3测试网络的方法

深入掌握网络性能测试&#xff1a;iperf3全指南 在网络优化、故障排查和带宽验证中&#xff0c;iperf 是工程师必备的利器。这款开源工具通过模拟数据流&#xff0c;精准测量​​带宽、抖动、丢包率​​等核心指标。本文将结合实战经验&#xff0c;详解iperf的安装、参数配置和…