2016-01-08 6 views
0

Я пытаюсь запустить gpxlogger после загрузки RaspPi, проблема в том, что gpxlogger автоматически отключается через 5 секунд, если нет сигнала от GPSD при запуске (который получает сигнал около 1,5 -2 минуты после загрузки, иногда больше, сон, вероятно, не решить), и если это произойдет, он возвращается с 0.Bash run 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 
) & 

в/и т.д./init.d/rc.local

Проблема заключается в том, что скрипт не дождался возврата gpxlogger rn, но запускает новый gpxlogger каждые 10 секунд.

ТЛ; др Желаемое действие:

Запуск малина -> Петля gpxloggers умирает через 5 секунд без каких-либо данных GPSD -> Получить исправить в GPSD -> Single 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; вы, вероятно, хотите интерполировать 'date' как'/home/pi/gpslogs/log $ (date +% F-% T) .txt' – tripleee

+0

Формат, который я использую, отлично работает на Raspbian - файлы названы правильно, но спасибо за вход. – Rachey

Смежные вопросы