supervisor介绍
Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)
安装命令
包含 安装supervisor的依赖文件、supervisor程序、加入开机自启、检查状态等操作 install_supervisor.sh脚本内容
#!/bin/bash
cd /home/ctier
sudo apt-get update
sudo apt-get install -y python-pkg-resources python2.7-meld3 subversion
sudo wget http://softpkg.rd.chanjet.com.cn/ops/pkgname/python-supervisor_3.1.3_all.deb
sudo dpkg -i /home/ctier/python-supervisor_3.1.3_all.deb > /dev/null 2>&1
sudo /usr/local/bin/supervisord -c /etc/supervisord.conf
sudo supervisorctl status
配置
生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
启动
supervisord -c /etc/supervisord.conf
查看进程是否运行
ps aux | grep supervisord
修改配置文件
vim /etc/supervisord.conf
在配置文件底部,配置include
[include]
files=/etc/supervisor/*.conf #若你本地无/etc/supervisor目录,请自建
开始写自己需要守护的进程配置
cd /etc/supervisor
vim ossfs.conf # 这里写你要守护的进程的配置文件的名称(自定义)
配置文件这样写
; 设置进程的名称,使用 supervisorctl 来管理进程时需要使用该进程名
[program:your_program_name]
command=python server.py --port=9000
;numprocs=1 ; 默认为1
;process_name=%(program_name)s ; 默认为 %(program_name)s,即 [program:x] 中的 x
directory=/home/python/tornado_server ; 执行 command 之前,先切换到工作目录
user=oxygen ; 使用 oxygen 用户来启动该进程
; 程序崩溃时自动重启,重启次数是有限制的,默认为3次
autorestart=true
redirect_stderr=true ; 重定向输出的日志
stdout_logfile = /var/log/supervisord/tornado_server.log
loglevel=info
更改配置文件完成后需要重置supervisor服务
supervisorctl reload
常见用法
supervisord : 启动supervisor
supervisorctl reload :修改完配置文件后重新启动supervisor
supervisorctl status :查看supervisor监管的进程状态
supervisorctl start 进程名 :启动XXX进程
supervisorctl stop 进程名 :停止XXX进程
supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
可以网页管理
vim /etc/supervisord.conf
修改配置文件
[inet_http_server]
port=0.0.0.0:9001 ; 对所有ip都可以访问
username=xxx ;自定义
password=xxx ;自定义
最后重置supervisor
supervisorctl reload
网页端管理
网友评论