Bash在启动时运行gpxlogger

时间:2016-01-08 10:54:17

标签: linux bash raspberry-pi gpsd

我试图在启动RaspPi后运行gpxlogger,问题是如果启动时没有来自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。

tl; dr所需行动:

启动Raspberry - >循环gpxloggers在没有来自GPSD的数据5秒后死亡 - >获取GPSD修复 - >单个gpxlogger保持登录文件

有人可以帮我解决这个问题吗? 任何意见都将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果它已经在运行,请不要重启。

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 &

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