나는 부분적인 용어 문제, 일부분은 보통 newb 문제, 일부는 읽기 문제에 지쳐 있다고 생각한다.
지금까지 내 가정의 에너지 모니터 프로젝트에서 SDR 라디오 작동, 데이터 디코딩, InfsonDB 로의 Json Push, Grafana 실행 및 그래프 가져 오기 등의 작업을 수행했습니다. 나는 라스베리 파이 / 오렌지 피 (OrangePi)를 가지고 노는 2 달 미만의 리눅스 경험을 가지고 있기 때문에 인터넷 검색을 통해 모두.
내 OrangePi가 Armbian 우분투를 실행합니다. 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이 내가 읽은 것 이상으로 그 환경 변수를 "읽습니다"는 것을 확신하지 못합니다.
그렇다면이 스크립트를 부팅 할 때 "적절한"방법은 무엇입니까 (어쩌면 모든 것이 "안정된"상태 일 것입니다.).
궁극적으로 나는 그것을 "에너지"라고 불리는 "서비스"로 갖고 싶다. 그래서 sudo 서비스 에너지 스타트 시작 / 정지 / 재시작을 할 수있다.
나는 /etc/init.d/skeleton과 /etc/init.d에 이미 존재하는 파일들을 살펴 봤지만, 내가 무엇을보고 있는지 잘 모르겠다.
누군가 올바른 방향으로 나를 조종 할 수 있습니까?
많은 감사합니다!