• supervisor管理进程用法详解


    Supervisor是一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。

    提供的高可用场景,当你的程序出现异常,例如core/内存溢出等,导致服务进程被杀死,这个时候supervisort监听到进程终止后,会自动将它重新拉起。

    supervisor安装

    1、通过apt-get直接安装

    apt-get install supervisor

    2、pip安装

    pip install supervisor

    3、easy_install安装

    easy_install supervisor

    supervisor是一个C/S架构的工具。安装完成后,会生成三个执行程序:

    1)supervisortd:守护进程服务(用于接收进程管理命令)

    2)supervisorctl:客户端(用于和守护进程通信,发送管理进程的指令)

    3)echo_supervisord_conf:生成初始配置文件程序

    supervisor配置

    运行echo_supervisord_conf命令输出默认的配置项,可以如下操作将默认配置保存到文件中

    echo_supervisord_conf > supervisord.conf
    

    vim 打开编辑supervisord.conf文件,修改

    1. [include]
    2. files = relative/directory/*.ini

    1. [include]
    2. files = /etc/supervisor/*.conf

    include选项指明包含的其他配置文件。

    将编辑后的supervisord.conf文件复制到/etc/目录下

    sudo cp supervisord.conf /etc/

    然后在/etc目录下新建子目录supervisor(与配置文件里的选项相同),并在/etc/supervisor/中新建需要管理的配置文件xxx.conf。

    1. [program:test_one]
    2. command=python3 /home/dgw/Desktop/test/text.txt; 被监控的进程路径
    3. priority=1 ; 数字越高,优先级越高
    4. numprocs=1 ; 启动几个进程
    5. autostart=true ; 随着supervisord的启动而启动
    6. autorestart=true ; 自动重启
    7. startretries=10 ; 启动失败时的最多重试次数
    8. exitcodes=0 ; 正常退出代码
    9. stopsignal=KILL ; 用来杀死进程的信号
    10. stopwaitsecs=10 ; 发送SIGKILL前的等待时间
    11. redirect_stderr=true ; 重定向stderr到stdout
    12. [program:test_two]
    13. command=python3 /home/dgw/Desktop/test/text2.txt; 被监控的进程路径
    14. priority=1 ; 数字越高,优先级越高
    15. numprocs=1 ; 启动几个进程
    16. autostart=true ; 随着supervisord的启动而启动
    17. autorestart=true ; 自动重启
    18. startretries=10 ; 启动失败时的最多重试次数
    19. exitcodes=0 ; 正常退出代码
    20. stopsignal=KILL ; 用来杀死进程的信号
    21. stopwaitsecs=10 ; 发送SIGKILL前的等待时间
    22. redirect_stderr=true ; 重定向stderr到stdout

    注意:要对上面编辑的文件添加可操作权限:chmod +x xxx.conf

    supervisor启动

    supervisord -c /etc/supervisord.conf

    查看 supervisord 是否在运行:

    ps aux | grep supervisord

    supervisorctl

            利用supervisorctl来管理supervisor。

    1. supervisorctl
    2. > status # 查看程序状态
    3. > start apscheduler # 启动 apscheduler 单一程序
    4. > stop toutiao:* # 关闭 toutiao组 程序
    5. > start toutiao:* # 启动 toutiao组 程序
    6. > restart toutiao:* # 重启 toutiao组 程序
    7. > update # 重启配置文件修改过的程序

    执行status命令时,显示如下信息说明程序运行正常:

    1. supervisor> status
    2. toutiao:toutiao-app RUNNING pid 32091, uptime 00:00:02

    此时没有是说明没有权限,在命令前面加上sudo就可以啦!

     

    异常报错参考链接:

    supervisor出现的错误_qq_38375394的博客-CSDN博客

    supervisor启动报错Unlinking stale socket /tmp/supervisor、unix:/run/supervisor/supervisor.sock no such fi_wd520521的博客-CSDN博客

  • 相关阅读:
    44文章解读与程序——《MATLAB神经网络30个案例分析》-30个实例仿真---已提供下载资源
    【C++11重点语法上】lambda表达式,初始化列表
    高等工程数学 —— 第四章 (2)线性方程组的迭代解法和极小化方法
    String类及相应的字符串操作方法
    HTTP文件服务
    Vue动态路由配置
    YB4554是一款经济高效、完全集成的高端输入电压单电池锂离子电池充电器。
    UDS入门至精通系列:Service 29
    我那愚蠢的代码之旅
    idea如何更改编辑器字体大小和框字体大小
  • 原文地址:https://blog.csdn.net/weixin_44799217/article/details/122085565