目的:使用supervisor进行进程管理,方便使用。html
操做:python
> sudo apt-get install supervisor # 安装supervisorweb
一、安装完成后,/etc/supervisor/supervisord.conf 是supervisor的主要配置文件。安全
supervisor的配置文件默认是不全的,不过在大部分默认的状况下,上面说的基本功能已经知足。服务器
supervisor的配置参数较多,详细的配置及说明请百度。socket
注:分号(;)开头的配置表示注释ui
[unix_http_server]url
#项目名
[program:blog]
#脚本目录
directory=/opt/bin
#脚本执行命令
command=/usr/bin/python /opt/bin/test.py
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected
#设置子进程挂掉后自动重启的状况,有三个选项,false,unexpected和true。若是为false的时候,不管什么状况下,都不会被从新启动,若是为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的
autorestart=false
#这个选项是子进程启动多少秒以后,此时状态若是是running,则咱们认为启动成功了。默认值为1
startsecs=1
#日志输出
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
#脚本运行的用户身份
user = zhoujy
#把 stderr 重定向到 stdout,默认 false
redirect_stderr = true
#stdout 日志文件大小,默认 50MB
stdout_logfile_maxbytes = 20M
#stdout 日志文件备份数
stdout_logfile_backups = 20spa
> supervisord # 启动supervisor服务debug
注意:执行supervisord时出现supervisor error :Another program is already listening on a port that one of our HTTP servers is,说明你的supervisord已经启动了,经过 ps -ef | grep supervisord 来查看进程,能够kill他再从新起。
附上一些命令:
supervisord -c /etc/supervisord.conf # supervisor服务启动
supervisorctl # 服务客户端管理(在supervisorctl客户端下help一下)
supervisorctl status //查看状态
supervisorctl start web_server // 开启一个进程(web_server=你配置中写的程序名称)
supervisorctl stop web_server //中止一个进程
supervisorctl restart web_server //重启一个进程
supervisorctl reload # 从新启动配置中的全部程序,更改了supervisor的配置后执行一下
supervisorctl reread // 从新加载配置,更改了进程配置后
supervisorctl update // 更新启动列表,更改了进程配置后
参考:
https://www.cnblogs.com/xuezhigu/p/7660203.html
http://www.cnblogs.com/taek/p/8465393.html
........