supervisor的基本使用

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

supervisor 的服务器端称为 supervisord,主要负责在启动自身时 启动所管理的子进程,响应客户端的命令,并在所管理的子进程出现崩溃时自动重启。

supervisorctl,命令行客户端

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

安装supervisor
  • 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

创建进程
  • ubuntu 在 /etc/supervisor/conf.d/ 下 .conf 文件

  • 进程的样例:

    [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相关命令
  • 查看supervisor服务是否正常运行

    sudo supervisorctl
    
  • 关闭supervisor则执行命令

    sudo supervisorctl shutdown
    
  • 重载supervisor

    sudo supervisorctl reload

  • 更新supervisor

    sudo supervisorctl update

  • 查看状态

    sudo supervisorctl status

  • 启动所有/指定的程序进程

    sudo supervisorctl start all / aa

  • 启动某个supervisor进程

    sudo supervisorctl start xxxx
    
  • 重启某个supervisor进程

    sudo supervisorctl restart xxxx
    
  • 停止某个supervisor进程

    sudo supervisorctl stop xxxx
    
  • 停止所有supervisor进程

    sudo supervisorctl stop all
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值