2012-07-20 2 views
1

현재 리눅스에서 실행되는 실행 파일을 개발 중입니다. 나는이 실행 파일을 모니터하고 그것이 다시 시작되는 관리자를 원합니다. 그렇게하기위한 명령이 있습니까? 또는 나에게리눅스에서 실행 파일의 감독자

주 그것을 할 수있는 방법을 제안 : 코드가 C++ 사전

답변

1

이 감독자는 이미 존재하며 항상 실행 중입니다. init이라고하며 대부분의 버전은 /etc/inittab의 항목으로 제어됩니다.

0

에서

덕분에이 그냥 종료 때까지 기다리 과정 스스로를 생성하는 가장 간단한 방법이며, 그런 다음 다시 시작하십시오. 가장 간단한 방법은 쉘 스크립트 루프에있는 것입니다. 그러나 일반적으로 이러한 종류의 워치 독 아키텍처는 허약하고 결함이있는 경향이 있습니다. 당신의 과정은 왜 죽어 가고 있습니까? 다시 시작하는 동안 어떻게됩니까? 프로세스의 현재 "버전"이 이전과 동일하다고 가정하는 시스템의 다른 곳에서는 상태가 보존되어 있습니까?

일반적으로 이것은 단지 완료되지 않았습니다. 하나의 이벤트/명령/요청을 처리하는 일회용으로 프로세스를 설계하거나 항상 살아 있다고 추정 할 수 있도록 견고하게 작성하는 것이 가장 좋습니다. 그리고 그 일을 할 수 없다면 쉘 루프로 감싸 주면됩니다.

+0

워치 독 개념이 그렇게 나쁘다면, 모든 리눅스 인스턴스가 왜 그것을 사용합니까? –

+0

리눅스에서는 사실상 아무 것도 감시되지 않습니다. 물론 httpd, mysqld 등과 같은 중요한 서비스는 일반적인 설치에는 포함되지 않습니다. dbus-daemon과 같은 핵심 요소. 반례가 있니? –

+0

시스템의 많은 작은 부분은 개별적으로 프로세스 모니터링 및 자동 다시 시작의 대상이 아니지만 전체 사용자 모드 시스템 자체가 있습니다. 거의 모든 Linux 배포판에서 이름을 지정하는 데 관심이 있습니다. 이는 프로세스 1의 유일한 기능으로 모든 Linux 시스템에 있어야합니다. 특히 터미널 로그인 프로세스가 모니터링되고 다시 시작되면 다시 시작됩니다. –

1

Monit는에서

대부분의 리눅스 배포판과 함께 제공하고 당신이 찾고있는 무엇을 할 수 플러스 상당한 양의 더 확인, 메모리, 디스크 공간, 연결, 같은 docs 당신이 뭔가를 할 수 그래서 당신의 monit 설정 파일에 :

check file with path /cifs/mydata 
    if does not exist for 5 cycles then exec "/usr/bin/mount_cifs.sh" 
관련 문제