We're building web applications in Python and it isn't rare to require 3 or more services to be running (search, db(s), task queues, web app, etc.) just to work on the 开发者_StackOverflowproject locally. Manually firing off each service in a new console (then remembering to restart it when you change the code) is slow and error prone.
Ideally, I'd like to be able to give developers on our projects a single command that will:
- start all the required services
- log any output to the console
- restart services automatically if the code changes (via something like pywatch or inotify)
I personally like supervisord. I used it when I was writing an app that combined nginx and tornado. It will handle starting and monitoring of the services you define, and give you an interface to control them as a group.
It doesn't have file monitoring built in, but there may be a plugin (update: there doesn't seem to be one), or you could send it event via a script to watch the files.
精彩评论