【发布时间】:2018-05-23 09:29:49
【问题描述】:
我只是第一年的学徒,这是我的第一篇文章,所以请多多包涵。
首先:我们使用具有拉伸分布的 Raspberry Pi。
每次推出更新时,我们都必须进行发布测试。通常,如果新版本有效,则必须通过 ssh 在 Pi 上手动和远程执行某些命令,并将结果与应有的结果进行比较。我目前正在使用一个到目前为止运行良好的 bash 脚本来自动化这个过程。
然而,在不同的时候,我们必须创建某些标志文件来启动某些进程并在之后重新启动 Pi,以便它检测到标志文件并执行进程。问题是重启当然会结束我的脚本。
现在我知道您可以编写一个执行脚本 @reboot 的 cronjob 或在您的脚本中编写一个检查状态然后执行脚本的“重启后”部分的函数,但这些解决方案都需要如果我理解正确的话,脚本就在 Pi 上。但是我必须通过 ssh 从我的办公室 PC 远程运行我的 scipts,并获取我的配置和移交参数等。
这是我在启动脚本中运行的:
#!/bin/bash
CONFIG=/home/user/Schreibtisch/config.sh
source $CONFIG
echo "Release AutoTest V0.7 on $DEVICE_ID"
echo "Make sure an external WLAN chip is plugged in"
read -p "Press ENTER to start"
ssh root@$DEVICE_IP "bash -s" -- < /home/user/Schreibtisch/auto_test.sh "$PMD" "$BTDMD" "$AND TEN MORE PARAMETERS..."
exit 0
“auto_test.sh”是在 Pi 上运行的实际脚本。
那么有没有办法“告诉”我的本地脚本必须等待重新启动然后开始下一部分或其他什么?或者只是能够回到我的“auto_start.sh”,我可以为此编写一个重启后的部分,并在睡眠 40 次或其他时间后给 Pi 第二个脚本。 (或者更好的是在 Pi 再次运行时进行检测,但这是我可以自己处理的事情。)
【问题讨论】:
标签: linux bash raspberry-pi remote-access