2017-10-16 18 views
0

내 장치를 자동화하기 위해 Raspberry PI를 사용하고 있습니다. 내 콘솔 응용 프로그램 (C++로 작성)이 Raspberry에 필요하다. 그래서 매일 재부팅을위한 워치 독을 설정하고 자동 실행으로 내 앱을 실행합니다.자동 다시 시작 Linux 콘솔 앱

하지만 내 앱이 중단 될 수 있습니다. 원인을 밝힐 수 없어 빨리 다시 시작해야합니다. 가장 좋은 방법은 무엇입니까? 나는 "부모"-app를 작성할 수 있으며, 내 스레드를 호출하여 작업을 제어 할 수 있습니다 (그러나 너무 충돌 할 수 있음)? 아니면 이것을 수행 할 기존 데몬이 있습니까? 아니면 누군가가 이것을 알고 Phyton 앱을 작성하는 방법을 알고 시작시 실행할 수 있습니까?

+0

서비스를 생성하고 init.d가 처리하도록하십시오. 이미 존재할 때 래퍼를 시도하고 다시 시작할 래퍼를 작성하지 않아도됩니다! – UKMonkey

답변

0

질문에 반드시 답할 필요는 없지만 "cron"과 같은 테스트 된 유틸리티를 사용하여 매일 재부팅을 예약하는 것이 더 나은 방법이라고 생각합니다. 응용 프로그램이 어떤 방법으로 실패하는 경우

while true; do /bin/my_app; done 

그러나,이 모든 방법은 어떤 도움이되지 않습니다 : 그것은 충돌하는 경향이 경우 실행되는 프로그램을 유지

0

단지 쉘 스크립트를 사용하여 충분히 쉽게 프로세스 셧다운 부족. 이와 같은 상황에서 일반적인 외부 접근 방식을 사용하여 응용 프로그램에 프로빙 할 수있는 외부 액세스 지점 (예 : HTTP 서버)을 제공합니다. 그런 다음 다른 프로세스가 정기적 인 간격으로 프로브를 실행하고 프로그램이 적시에 응답하지 않으면 프로그램을 종료합니다. 이런 종류의 작업을위한 매우 정교한 프레임 워크가 있지만이 유형의 간단한 기능은 쉘 스크립트로 구현할 수 있습니다.