2016-01-08 56 views
0

我想在啓動RaspPi後運行gpxlogger,問題在於如果啓動時GPSD沒有信號(它將獲得1,5左右的信號,gpxlogger會在5秒後自動關閉)開機後1-2分鐘,有時甚至更覺很可能不會解決這個問題),如果出現這種情況,它與一個0bash在啓動時運行gpxlogger

到目前爲止,我已經得到了回報:

(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;博士所需的操作:

啓動樹莓 - >循環gpxloggers從GPSD沒有數據的5秒後死去 - >獲取的GPSD修復 - >單gpxlogger不斷登錄到文件

有人可以試圖幫助我嗎? 任何輸入將不勝感激。

回答

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 & 

(括號似乎是多餘的,所以我刪除它們。)

+0

就像一個魅力!謝謝! – Rachey

+0

你似乎認爲'%H''等會被當前小時等代替。這不是普通Unix shell的一個特性;你可能想像'/ home/pi/gpslogs/log $(date +%F-%T).txt'那樣插入日期' – tripleee

+0

我使用的格式似乎在Raspbian上正常工作 - 文件命名正確,但感謝您的意見。 – Rachey