supervisor简明使用
简单介绍
supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过 fork/exec 的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。
下载安装
# 需要预先下载 easy_install
easy_install supervisor
配置使用
通过easy_install安装后,手动生成配置文件:
# 找到 echo_supervisord_conf
find / -name "*supervisord*"
# 找到位置后执行
/usr/bin/supervisord > /etc/supervisord.conf
导入了 supervisor 的配置文件后,创建我们需要用到的环境:
mkdir -p /etc/supervisor/conf.d
以后编写的需要管理的进程的配置文件就放在 /etc/supervisor/conf.d 目录下,命名为:*.conf
,
比如:itkim.conf
。
修改 supervisor 的主配置文件:
[include]
files = /etc/supervisor/conf.d/*.conf # 我们需要管理的进程的配置文件路径
编写我们需要管理进程的配置文件,例如:itkim.conf
[program:itkim]
# 脚本目录
directory=/root/YAB/trading_platform
# 脚本执行命令
command=/usr/bin/python /root/YAB/trading_platform/main.py
# supervisor启动的时候管理进程随着同时启动
autostart=true
# 当管理的进程exit的时候,自动尝试重启这个进程
autorestart=true
# 这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。
startsecs=1
# 日志输出路径
stderr_logfile=/tmp/blog_stderr.log
stdout_logfile=/tmp/blog_stdout.log
# 脚本运行的用户身份
user = root
第一次启动:
supervisord -c /etc/supervisord.conf
配置web界面操作(可选)
通过配置[inet_http_server]可以通过web界面对supervisor控制的进程进行管理
示例:
[inet_http_server]
port=123.56.7.147:8888
username=user
password=passwd
运行管理
supervisorctl status:查看所有进程的状态
sup