我试图让一个gpxlogger在启动RaspPi后运行,问题是如果启动时没有来自GPSD的信号,gpxlogger会在5秒后自动关闭(这会在启动后1,5-2分钟左右得到信号,有时更多的时候睡眠可能无法解决),如果发生这种情况,它会返回0。
到目前为止我有:

(while true; do
     until gpxlogger -d -f /home/pi/gpslogs/log'%Y-%m-%d-%H:%M:%S'.txt -i 2; do
         echo "restarting"
         sleep 10
     done
done
) &

在/etc/init.d/rc.local中
问题是,脚本不会等待gpxlogger返回,而是每隔10秒启动一个新的gpxlogger。
目标操作:
启动Raspberry->循环gpxloggers在没有来自GPSD的数据5秒后死亡->在GPSD中获取修复->单个gpxlogger继续登录到文件
有人能帮我一下吗?
如有任何意见,将不胜感激。

最佳答案

如果已经在运行,不要重新启动。

while true; do
    if ! pidof gpxlogger >/dev/null; then
        echo "restarting"
        gpxlogger -d -f /home/pi/gpslogs/log'%Y-%m-%d-%H:%M:%S'.txt -i 2
    fi
    sleep 10
done &

(括号似乎是多余的,所以我删除了它们。)

07-24 21:14