supervisor用于linux系统中的后台管理, 需要注意的是, supervisor可以用于python2.4+环境,但是不适用于任何python3.x环境。

supervisor的配置文件在官方文档中有详细说明,配置文件中以;标识注释块。 配置文件格式满足python parseconfig模块的格式要求。 这里主要一些自己比较感兴趣的配置模块:

1. iner_http_server模块可以设置supervisor的web服务模块,可以通过网页来对进程进行管理。 

[iner_http_server]

port=0.0.0.0:9001

username=test

password=test 

2. [program:test]一般单独放在xxx.conf文件中,并防止在/etc/supervisor/conf.d/文件夹中,这个可以参见/etc/supervisor/supervisord.conf中的files设定

[program: test]

command=xxxxxxxx  ;如果有多条命令,可以写入shell脚本再在这里调用

directory=xxxxx        ;执行命令是切换到的目录

user=xxxx ;执行命令所用的linux用户身份

autorestart=true ;是否自动重启

autostart=true ;启动supervisor时是否自行启动该程序

redirect_stderr=true ;如果为true则将stderr发送到stdout相应的log文件中去

stdout_logfile=/path/to/logfile ;制定stdout的输出文件

stdout_logfile_maxbytes=10MB ;限定logfile的大小, 默认为50M

stdout_logfile_backups=10 ;保存logfile的最大数目,如果操作这个数目则对最早的logfile进行覆盖,默认为10

environment=A="1", B="2" ;设置环境变量,这里可以保存运行程序需要的参数 

 

如果所用的python是在虚拟环境中,则通过which python获取python命令的全名进行使用即可.

 

修改完配置文件后需要重新加载和重启服务:

1 sudo supervisorctl reread
2 sudo supervisorctl reload
3 sudo supervisorctl start app  # 如果没有设置自动启动 

 

posted on 2016-03-29 15:43  迷阳  阅读(8860)  评论(0编辑  收藏  举报