Supervisor的使用方法

Supervisor 是基于 Python 的进程管理工具
当执行一些需要以守护进程方式执行的程序,比如一个后台任务,常用它来进程管理。
Supervisor 还能友好的管理程序在命令行上输出的日志,可以将日志重定向到自定义的日志文件中

它有两个主要的组成部分:
1、supervisord,服务守护进程
supervisor 的服务器端称为 supervisord,主要负责在启动自身时 启动所管理的子进程,响应客户端的命令,并在所管理的子进程出现崩溃时自动重启。

2、supervisorctl,命令行客户端
用户可以连接到 supervisord 服务器进程,获得子进程的状态,可以执行 stop、start、restart 等命令,来对这些子进程进行管理。

安装方法

  1. ubuntu下
 apt install supervisor
 # 或 pip install supervisor
 # 创建配置文件
 sudo echo_supervisord_conf > /etc/supervisor/supervisord.conf
vim supervisord.conf

[include]
files = /etc/supervisor/conf.d/*.conf
 
[inet_http_server]
port=0.0.0.0:9001
username=user
password=123

支持通过浏览器来管理进程,端口 9001
使用 include,跟 Nginx 一样的,可以 include 某个文件夹下的所有配置文件,可以为每个进程单独写一个配置文件。

启动 supervisord

# 指定配置文件
supervisord -c /etc/supervisor/supervisord.conf
# 启动 supervisord
sudo service supervisor start
sudo service supervisor status
  1. centos下
yum install -y supervisor
# 加入开机自启
sudo systemctl enable supervisord
# 启动supervisord服务
sudo systemctl start supervisord
sudo systemctl status supervisord

开始创建进程
ubuntu 在 /etc/supervisor/conf.d/ 下 .conf 文件
centos 在 /etc/supervisord.d/ 下 .ini 文件

进程的样例:

[program:online-shop]
# 程序的启动目录
directory = /home/python/Desktop/online-store/myshop
environment = PYTHONPATH=/home/python/.virtualenvs/online-store/bin
user = root
command = /home/python/.virtualenvs/online-store/bin/python /home/python/Desktop/online-store/myshop/manage.py runserver --insecure 0.0.0.0:8000

# 在supervisord启动的时候也自动启动
autostart = true
# 启动5秒后没有异常退出,就当作已经正常启动了
startsecs = 5 
# 程序异常退出后自动重启
autorestart = true
# 启动失败自动重试次数,默认是 3
startretries = 3 
# 把stderr重定向到stdout,默认false,是否将程序错误信息重定向的到文件
redirect_stderr = true
# 程序错误信息输出到该文件
stderr_logfile = /var/log/online-shop.log

supervisor 启动 shell 脚本

[program:zookeeper]
autostart = true
autorestart = true
command = sh /usr/local/zookeeper/bin/zkServer.sh start zoo1.cfg
directory=/usr/local/zookeeper
startsecs=0
user = root
stdout_logfile=/var/log/zookeeper_out.log

在这里插入图片描述
报错: FATAL Exited too quickly (process log may have details)
解决:脚本中添加一行, startsecs=0

Supervisor 相关命令

# 重载supervisor
supervisorctl reload
# 更新supervisor
supervisorctl update
# 查看状态
supervisorctl status
# 启动所有/指定的程序进程
supervisorctl start all / aa
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值