2016-12-07 5 views
0

선택한 프로세스가 정지되지 않았는지 확인해야합니다. 나는이 프로세스를/proc 파일에 기록하여 다른 프로세스/모듈에 의해 주기적으로 모니터 할 것이라고 생각했다. 파일에 변경 사항이없는 경우 응용 프로그램이 중단 된 것으로 간주됩니다. uC의 워치 독과 마찬가지입니다.단일 프로세스를위한 워치 독 [Linux]

그러나 이것이 최선의 방법인지는 잘 모르겠습니다. 내가 진정으로 깊은 리눅스 공학을하는 것은 아니기 때문에 어느 모듈이/proc 파일 시스템 등을 쓰는 것을 배우기 시작하기 전에 어느 것이 가장 쉬운 지 묻는 것이 낫다고 생각했다. 하!

내가 Monit (https://mmonit.com/monit/)에 대한 정보를 찾았습니다. 어쩌면이게 더 나아질 까?

"워치 독"기능을 구현하는 가장 좋은 방법은 무엇입니까?

고맙습니다.

파블

+0

어떤 초기화 시스템을 사용하고 있습니까? –

+0

저는 BusyBox init을 사용합니다. 이것은 런레벨을 지원하지 않습니다. 나는/etc/rc * 항목이 없지만 init.d 스크립트를 실행합니다. 이 질문은 @ FrankMeerkötter의 질문에 대한 답변이지만 Felipe Lavratti는 이미 해결책을 찾는데 도움이되었습니다. 감사! –

답변

1

운영체제 독립적 해결책은 상태 비트 또는 바이트로 구현되는 하나 개 이상의 소프트웨어 심의을 주기적으로 실행하고 지원하는 감시 스레드를 생성하는 것이다. 문제의 프로세스는 워치 독을 치는 (상태를 지우는) 책임이 있습니다. 워치 독 쓰레드는 상태를 확인하는 루프입니다. 삭제 된 경우 설정됩니다. 해제되지 않은 경우 알람이 울립니다. 루프를 통해 매번 상태가 점검되지 않도록 타이밍을 조정할 수 있습니다.

이 솔루션은 매우 유연합니다. 또한 모든 소프트웨어 워치 독이 가려진 경우에만 하드웨어 워치 독에 묶어 hw 워치 독을 적용 할 수 있습니다.