Bash 运行 启动时的 gpxlogger

Bash run gpxlogger on startup

我正在尝试在启动 RaspPi 后获取 gpxlogger 运行,问题是如果在启动时没有来自 GPSD 的信号(这会在 1 左右获取信号,gpxlogger 会在 5 秒后自动关闭)启动后 5-2 分钟,有时更长时间,所以睡眠可能无法解决问题),如果发生这种情况,它 returns 带有 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 return,而是每 10 秒启动一个新的 gpxlogger。

tl;dr 所需操作:

启动 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 &

(括号好像是多余的,所以去掉了。)