supervisor地址:http://supervisord.org,官方标语就是:一个进程管理工具。
安装:
sudo apt-get install supervisor # pip/easy_install
安装好以后,有两个可执行文件和一个配置文件(平台差异,可能路径不一致):
/usr/bin/supervisord -- supervisor服务守护进程 /usr/bin/supervisorctl -- supervisor服务控制程序,比如:status/start/stop/restart xx 等 /etc/supervisor/supervisord.conf -- 配置文件,定义服务名称以及接口等等
Supervisor 有两个可执行程序 – supervisord 和 supervisorctl:
supervisord 是后台管理服务器, 用来依据配置文件的策略管理后台守护进程, 它会随系统自动启动
supervisorctl 用于管理员向后台管理程序发送 启动/重启/停止 等指令;
它们之间的关系就相当于 Apache 的 httpd 和 apachectl.
supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。
配置文件:
[inet_http_server] ; Web管理界面设定 port=9001 username = admin password = yourpassword ; 管理的单个进程的配置,可以添加多个program ; 文档 http://supervisord.org/configuration.html#program-x-section-settings [program:py-chess] ; command 字段设置的是后台守护应用的启动命令, ; 注意: 该命令必须是在前台执行的, 即会独占控制台, 否则会导致 supervisor 无法获得标准输出, 并失去进程的控制权. command=python /var/www/py-chess/app.py autostart = true startsecs = 5 user = root redirect_stderr = true stdout_logfile = /var/log/supervisord/py-chess.log