0

我试图在启动 RaspPi 后运行 gpxlogger,问题是如果启动时 GPSD 没有信号,gpxlogger 会在 5 秒后自动关闭(启动后大约 1.5-2 分钟会收到信号,有时更多所以 sleep 可能无法解决它),如果发生这种情况,它会返回 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;博士期望的行动:

启动 Raspberry -> 在 GPSD 没有数据 5 秒后循环 gpxloggers 死机 -> 在 GPSD 中修复 -> 单个 gpxlogger 保持登录到文件

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

4

1 回答 1

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 &

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

于 2016-01-08T10:59:40.797 回答