나는 최근에이처럼 보였다 로그 메시지를 산출, 전체 얼랑 응용 프로그램이 사망 버그로 실행 :자동으로 다시 시작 얼랑 응용 프로그램을
=INFO REPORT==== 11-Jun-2010::11:07:25 ===
application: myapp
exited: shutdown
type: temporary
나는이 종료 트리거 무슨 생각하지만, 진짜 문제 I가 없다 그것이 스스로 다시 시작하지 않았다는 것입니다. 대신, 지금 비어있는 Erlang VM은 아무것도하지 않고 앉아있었습니다.
지금까지 내가 한 연구에서 '일시적인'및 '영구적 인'응용 프로그램을 제공 할 수있는 다른 "시작 유형"이있는 것처럼 보입니다.
내가 내에서 응용 프로그램을 감독자 를 시작하면, 나는 특정 프로세스 일시적 또는 영구적으로 그것을 말할 수 있고, 자동으로 나를 위해 그것을 다시 시작됩니다. 그러나 설명서에 따르면 응용 프로그램을 일시적으로 또는 영구적으로 만들면 죽을 때 다시 시작하지 않고 모든 다른 응용 프로그램도 종료합니다.
내가 정말로하고 싶은 것은 Erlang VM에 특정 응용 프로그램이 항상 실행 중이어야한다는 것을 어떻게 든 알리고, 그것이 다운되면 다시 시작합니다. 가능한가요?
(내 응용 프로그램 위에 관리자를 구현하는 것에 대해 이야기하는 것이 아닙니다. 왜냐하면 내 관리자 프로세스가 충돌하는 경우 어떻게해야합니까? 내가 사용할 수있는 API 또는 설정을 찾고 있습니까? Erlang에서 나를 위해 내 응용 프로그램을 모니터하고 다시 시작하십시오.)
감사!
대단히 감사합니다. 이제 최대 재시작 한도에 도달했기 때문에 죽은 이유가 실제로 나타났습니다. 나는 그것이 단지 재시작 루프에 들어가면 전체 앱을 재시작해야 할 필요가 있기 때문에 반드시 비활성화하는 것을 원하지는 않습니다. 앱을 종료하는 대신 AllowedRestarts/MaxSeconds 제한에 도달하면 앱을 다시 시작하는 방법이 있습니까? – Nick
당신이 당신의 상사에게 감독관을 추가 할 것이라고 설명하는 경우. OTP가 사용하는 동작은 종료 신호가 애플리케이션에 대한 시작 호출을 수행하는 프로세스로 전송 될 때 (즉,최상위 수퍼바이저가 죽을 때) 응용 프로그램이 오류를 수정하지 못한 것으로 가정하고 구성에 따라 응용 프로그램과 가능한 노드를 종료합니다. 요점은 응용 프로그램이 충돌해서는 안되며, 오류가 발생하면 노드 재시작만으로 해결할 수있을 정도로 심각하다는 것입니다. – Lukas
링크는 404입니다 - 누구나 업데이트 할 수 있습니다 ....? – jisaacstone