Nginx 웹 프록시, gunicorn 웹 서버 및 python / flask 웹 앱이 있습니다. Gunicorn 프로세스는 분명히 죽었고, 나중에 다시 충돌하는 경우 gunicorn 프로세스를 모니터링하고 다시 시작할 수있는 유틸리티를 조사하여이를 개선하고 싶습니다.
나는 일을 할 수있는 몇 가지를 발견했다.
- 건방진 녀석
- 룬
- 감독자
- daemontools
- 더 많은
프로세스를 모니터링하고 다시 시작하는 데 사용되는 다양한 유틸리티를 비교하고 대조하는 포괄적 인 기사가 있습니까?
답변
-
runit
후임자입니다daemontools
(둘 다에 기록됨c
) -
supervisord
을 사용합니다python
.
내가 사용하고 runit
함께 socklog
내부에 같은 저자 알파인 리눅스 lxc
관리하기 위해 약 10 개월 동안 용기 web
/ database
및 기타 다양한 서비스를 제공합니다. 가볍고 관리하기 쉬우 며 서비스 장애가 없었습니다. 로깅 데몬은 또한 자신의 사용자로 실행되며 좋지 않습니다 root
.
voidlinux 는 시스템 runit
으로 사용 되며 서비스 감독init
에도 사용 됩니다 ( 스크립트의 예제 파일 은 패키지 트리 검색 ).run
runit
답변
배포판에서 Upstart를 사용하는 경우 함께 시작하십시오. 작업 재시작을 매우 기본적으로 지원하지만 @EEAA에서 언급 한 것처럼 재시작 루프를 막을 수있는 제한이 포함됩니다.
OS가 다른 init 프로그램을 사용하는 경우 변경하지 마십시오. 나는 Upstart가 여전히 존재하는 곳 (최신 LTS 기준)에서 우분투를 사용하기 때문에 언급 한 다른 도구로는 실제로 도움을 줄 수 없으므로 도구와 거의 관련이 없습니다. 그러나 cron에서 1 분에 한 번 (또는 더 자주 루프에서) 실행되는 간단한 스크립트를 작성하는 것은 어려운 일이 아닙니다 . PID는 존재하는지 확인하고 실패시 재시작을 발행 할 수 있습니다.