我试图在启动 RaspPi 后运行 gpxlogger,问题是如果启动时没有来自 GPSD 的信号(在启动后大约 1.5-2 分钟收到信号),gpxlogger 会在 5 秒后自动关闭,有时更多,所以 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;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 &
(括号似乎是多余的,所以我把它们去掉了。)
关于linux - Bash 在启动时运行 gpxlogger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675306/