프로세스가 종료 된 경우 다시 시작하기 위해 upstart, runit, supervisor, daemontools 등 중에서 어떻게 선택합니까?


13

Nginx 웹 프록시, gunicorn 웹 서버 및 python / flask 웹 앱이 있습니다. Gunicorn 프로세스는 분명히 죽었고, 나중에 다시 충돌하는 경우 gunicorn 프로세스를 모니터링하고 다시 시작할 수있는 유틸리티를 조사하여이를 개선하고 싶습니다.

나는 일을 할 수있는 몇 가지를 발견했다.

  • 건방진 녀석
  • 감독자
  • daemontools
  • 더 많은

프로세스를 모니터링하고 다시 시작하는 데 사용되는 다양한 유틸리티를 비교하고 대조하는 포괄적 인 기사가 있습니까?


2
다시 시작 루프에 들어가서 서버에서 사용 가능한 모든 리소스를 사용하는 상황 발생하기 때문에 상자 밖에서 이러한 서비스를 모니터링 해야합니다.
EEAA

원하는대로 정확하게 코드를 작성하십시오. 쉬운 작업입니다.
Ryan Babchishin

답변:


3
  • runit후임자입니다 daemontools(둘 다에 기록됨 c)

  • supervisord을 사용합니다 python.

내가 사용하고 runit함께 socklog내부에 같은 저자 알파인 리눅스 lxc 관리하기 위해 약 10 개월 동안 용기 web/ database및 기타 다양한 서비스를 제공합니다. 가볍고 관리하기 쉬우 며 서비스 장애가 없었습니다. 로깅 데몬은 또한 자신의 사용자로 실행되며 좋지 않습니다 root.

voidlinux 는 시스템 runit으로 사용 되며 서비스 감독init 에도 사용 됩니다 ( 스크립트의 예제 파일 은 패키지 트리 검색 ).runrunit


2

배포판에서 Upstart를 사용하는 경우 함께 시작하십시오. 작업 재시작을 매우 기본적으로 지원하지만 @EEAA에서 언급 한 것처럼 재시작 루프를 막을 수있는 제한이 포함됩니다.

OS가 다른 init 프로그램을 사용하는 경우 변경하지 마십시오. 나는 Upstart가 여전히 존재하는 곳 (최신 LTS 기준)에서 우분투를 사용하기 때문에 언급 한 다른 도구로는 실제로 도움을 줄 수 없으므로 도구와 거의 관련이 없습니다. 그러나 cron에서 1 분에 한 번 (또는 더 자주 루프에서) 실행되는 간단한 스크립트를 작성하는 것은 어려운 일이 아닙니다 . PID는 존재하는지 확인하고 실패시 재시작을 발행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.