通过aws-iot客户端服务运行ota更新的自定义工作失败

0

【以下的问题经过翻译处理】 你好,我一直在使用 aws iot 作业来发送自定义作业,比如重启服务、重启设备或运行自定义 ota 作业,比如从 git 中拉取。我注意到,当我使用作业的配置文件从 shell 手动运行 aws-iot-client 的内置二进制文件时,它在收到自定义 ota 作业时工作。但是当从 aws iot 服务运行具有相同配置文件的相同二进制文件时,它不起作用。作业报告失败状态,消息代码已退出,状态代码为 1。你能在这方面帮助我更多吗?

ota 处理程序的 update-software.sh 文件是:

#!/usr/bin/env sh
设置-e

echo "正在运行 update-software.sh"
用户=$1
echo "用户名:$user"
如果 id "$user" 2>/dev/null && command -v "git" > /dev/null
然后
    echo "开始更新命令"
    . /home/pi/triton_software/update.sh
别的
    “更新失败!!”
    出口 1
菲
echo "更新软件命令完成"


正在调用的 update.sh 脚本是

#!/usr/bin/env sh
cd /home/pi/amazon-kinesis-video-streams-producer-sdk-cpp;
git pull origin main;
光盘构建/;
cmake -DBUILD_GSTREAMER_PLUGIN=TRUE ..;
制作;


profile picture
专家
已提问 5 个月前15 查看次数
1 回答
0

【以下的回答经过翻译处理】 试过了。我改了几个东西,但成功了。

目录树结构:

/work
├── amazon-kinesis-video-streams-producer-sdk-cpp
│   ├── build
│   ├── certs
│   ├── CMake
│   ├── CMakeLists.txt
│   ├── dependency
│   ├── docs
│   ├── kvs_log_configuration
│   ├── LICENSE
│   ├── NOTICE
│   ├── open-source
│   ├── README.md
│   ├── samples
│   ├── src
│   └── tst
├── aws-iot-device-client
│   ├── build
│   ├── CHANGELOG.md
│   ├── CMakeLists.txt
│   ├── CMakeLists.txt.awssdk
│   ├── CMakeLists.txt.gtest
│   ├── CMakeLists.txt.versioning
│   ├── cmake-toolchain
│   ├── CODE_OF_CONDUCT.md
│   ├── config-template.json
│   ├── CONTRIBUTING.md
│   ├── docs
│   ├── format-check.sh
│   ├── LICENSE
│   ├── NOTICE
│   ├── old-schema-job-docs-and-handlers
│   ├── README.md
│   ├── run-cppcheck.sh
│   ├── sample-job-docs
│   ├── sample-job-handlers
│   ├── setup
│   ├── setup.sh
│   ├── source
│   └── test
├── cert
│   ├── AmazonRootCA1.pem
│   ├── certificate.pem.crt
│   ├── private.pem.key
│   └── public.pem.key
├── log
│   └── aws-iot-device-client.log
├── update.sh
└── update-software.sh

22个目录,26个文件
  • /root/.aws-iot-device-client/aws-iot-device-client.conf
{
  "endpoint":       "abcdefg-ats.iot.us-east-1.amazonaws.com",
  "cert":   "/work/cert/certificate.pem.crt",
  "key":    "/work/cert/private.pem.key",
  "root-ca":        "/work/cert/AmazonRootCA1.pem",
  "thing-name":     "thing",
  "logging":        {
    "level":        "DEBUG",
    "type": "FILE",
    "file": "/var/log
profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则