AWS WebRTC:通過shell實現多進程啟動viewer

?
前面總結了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的安裝、參數配置和…