Я думаю, что у меня есть неполная терминологическая проблема, частично простая проблема новичка, частично усталая от проблемы чтения.
До сих пор я работал над проектом домашнего энергомонитора: с работы моего SDR-радио, декодирования данных, передачи json в InfluxDB, запуска Grafana и получения графиков! В течение всего периода поиска в Google, поскольку у меня есть опыт работы с Linux менее 2 месяцев (просто играю с Raspberry Pi/OrangePi.
Мой OrangePi работает под управлением Armbian Ubuntu 16.04
Мне нужна очень простая "команда" для выполнения при загрузке. Он будет работать все время в фоновом режиме. Итак, я думаю, что делает его демоном? Команда
/home/jonboy545/GoCode/bin/rtlamr -filterid=62059972 -format=json -msgtype=idm unique=true | rtlamr-collect
Вот и все. Я сделал простой скрипт с именем log_energy.sh и сделал его исполняемым. Это просто:
#!/bin/bashr
/home/jonboy545/GoCode/bin/rtlamr -filterid=62059972 -format=json -msgtype=idm unique=true | rtlamr-collect;
Если я введу ./log_energy.sh в окно терминала, все прекрасно работает. Я должен открыть экземпляр SCREEN, чтобы отсоединить его, чтобы не оставлять терминал открытым. Очевидно, это не лучшее решение.
Итак, я помещаю это в rc.local? У меня были некоторые проблемы, я думаю, что это выполняется слишком рано, поэтому я попытался поставить там сон 60, но это все еще было спорадическим. Иногда это работало, иногда нет. Поэтому я подумал об использовании crontab и просто заставил его выполнить @reboot. Опять же, вероятно, не лучшее решение. Также есть переменные окружения, которые должны быть объявлены и установлены в ~/.profile (я думаю, они могут пойти куда угодно), и я не уверен, что crontab "читает" эти переменные окружения, по крайней мере, это то, что я прочитал.
Итак, каков "правильный" способ выполнения этого скрипта при загрузке (возможно, в самом конце, когда все "успокоится").
В конечном счете, я бы хотел, чтобы это был "сервис" под названием energylog, чтобы я мог запускать / останавливать / перезапускать сервис sudo.
Я посмотрел на /etc/init.d/skeleton, а также на некоторые уже существующие файлы в /etc/init.d, но я не совсем уверен, на что смотрю.
Может ли кто-нибудь направить меня в правильном направлении?
Большое спасибо!