2011-03-15 2 views
2

우리는 Python으로 웹 응용 프로그램을 구축하고 있으며 프로젝트를 로컬로 실행하기 위해 3 개 이상의 서비스 (검색, db (s), 작업 대기열, 웹 응용 프로그램 등)를 실행해야하는 경우는 드물지 않습니다. 새 콘솔에서 각 서비스를 수동으로 시작한 다음 (코드를 변경할 때 다시 시작한다는 것을 기억하십시오) 느리고 오류가 발생하기 쉽습니다.로컬에서 개발하는 동안 여러 서비스를 어떻게 관리합니까?

이상적으로는, 나는 우리의 프로젝트에 의지 하나의 명령 개발자를 줄 수 있도록하고 싶습니다 :

  • 필요한 모든 서비스를
  • 로그 콘솔에 출력을 시작을
  • 서비스를 다시 시작합니다 코드가 변경되면 (예 : pywatch 또는 inotify를 통해)

답변

0

나는 개인적으로 supervisord을 좋아합니다. 나는 nginx와 tornado를 결합한 응용 프로그램을 만들 때 그것을 사용했습니다. 정의한 서비스의 시작 및 모니터링을 처리하고 그룹으로 제어하는 ​​인터페이스를 제공합니다.

파일 모니터링 기능이 내장되어 있지 않지만 플러그인 (업데이트 : 하나 인 것 같지 않음)이 있거나 스크립트를 통해 이벤트를 보내 파일을 볼 수 있습니다.

+0

플러그인을 찾지 못했지만 [watchdog] (http://pypi.python.org/pypi/watchdog)이 잘 작동합니다. 'watcheyo shell-command --patterns = "* .py"- 재귀 - 명령 = 'supervisorctl restart some_service'/ path/to/some/service /' – Pete

+0

@ 피트! watchmedo 스크립트에 대해 알지 못했지만 여기서 완벽 할 것 같습니다. – JimB

관련 문제