AWS WebRTC:通过shell实现多进程启动master
前面几篇文章已经介绍通过手动启动master端进行推流,这次想通过shell实现多进程启动master端,实现短时间内的并发,或者是快速启动多个master的效果。
第一部分,通过shell调用接口,来获取密钥:
# query
UUID=$(uuidgen)
TIMESTAMP=$(date +%s)
API_URL="https://api-test-cn.fm.xxxxxxxx.com/v1/firmware/sync?uuid=${UUID}&t=${TIMESTAMP}"# 请求体参数
SN="1234567890"
REFRESH_STS="true"# Header
GG_PID="1234567"
GG_SIGN="1234567890"# 发起 POST 请求并保存响应
response=$(curl -k -s -X POST "${API_URL}" \-H "Content-Type: application/x-www-form-urlencoded" \-H "GG-Pid: ${GG_PID}" \-H "GG-Sign: ${GG_SIGN}" \--data-urlencode "sn=${SN}" \--data-urlencode "refreshSts=${REFRESH_STS}"
)# 打印原始响应,调试用
# echo "响应内容: $response"# 提取 ak、sk、token
ak=$(echo "$response" | jq -r '.data.xxxxx.ak')
sk=$(echo "$response" | jq -r '.data.xxxxx.sk')
token=$(echo "$response" | jq -r '.data.xxxxx.token')# 打印结果,调试用
echo "AK: $ak"
echo "SK: $sk"
echo "Token: $token"
1、我这边遇到的第一个问题:
脚本使用 jq
来解析 JSON,本地查看是否安装jq,不知道为什么我这边的输出是jq-:
[ec2-user@ip-10-xx-0-xxx kvs-webrtc-sdk]$ jq --version
jq-
所以决定先卸载jq:
sudo dnf remove jq -y
再重新安装:
sudo dnf install jq -y
但重新安装后还是有问题:
[ec2-user@ip-10-xx-0-xxx ~]$ jq --version
jq-
检查一下:
[ec2-user@ip-10-xx-0-xxx ~]$ which jq
/usr/local/bin/jq
[ec2-user@ip-10-xx-0-xxx ~]$ file /usr/local/bin/jq
/usr/local/bin/jq: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=c159e8a134ee222019dfbac0a1af4bc94b302eb0, with debug_info, not stripped
[ec2-user@ip-10-xx-0-xxx ~]$ type jq
jq is hashed (/usr/bin/jq)
上面的信息说明,正确地