zoukankan      html  css  js  c++  java
  • supervisor进程管理工具

    1 supervisor介绍

      1、什么是supervisor

          1. Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。、

          2. 作用:它可以很方便的监听、启动、停止、重启一个或多个进程。

          3. 用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起

          4. 很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

          5. 说白了,它真正有用的功能是俩个将非daemon(守护进程)程序变成deamon方式运行对程序进行监控,当程序退出时,可以自动拉起程序。

          6. 但是它无法控制本身就是daemon的服务。

      2、supervisor安装与基本使用

        1)supervisor安装

    [root@linux-node4 aaa]# yum install -y supervisor   # 使用yum安装supervisor,安装完成与两个重要文件
    /etc/supervisord.conf                               # supervisor配置文件
    /etc/supervisord.d/                                 # 子进程配置文件路径
    [root@linux-node4 aaa]# vim /etc/supervisord.conf   # 配置supervisor主配置文件
    [inet_http_server]         ; HTTP服务器,提供web管理界面
    port=*:9001                ; Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
    username=user              ; 登录管理后台的用户名
    password=123               ; 登录管理后台的用户名
    

         2)配置测试进程(/etc/supervisor.d/)

    1)子进程配置文件:需要管理的子进程都可放到这个文件夹里
    [root@linux-node4 aaa]# vim /etc/supervisord.d/test.ini 
    [program:test]                  ; 项目名
    directory=/tmp/                 ; 脚本路径
    command =uwsgi --ini test.ini   ; 启动命令,可以看出与手动在命令行启动的命令是一样的
    autostart = false               ; 在 supervisord 启动的时候也自动启动
    user=root                       ; 脚本运行的用户身份 
    startsecs = 5                   ; 启动 5 秒后没有异常退出,就当作已经正常启动了
    startretries = 3                ; 启动失败自动重试次数,默认是 3
    autorestart = true              ; 程序异常退出后自动重启
    redirect_stderr = true          ; 把 stderr 重定向到 stdout,默认 false
    stdout_logfile_maxbytes = 20MB            ; stdout 日志文件大小,默认 50MB
    stdout_logfile = /root/js_back_uwsgi.log  ; 日志输出位置
    stderr_logfile = /root/js_back_err.log
    2)测试脚本
    [root@linux-node4 aaa]# vim /tmp/test.ini 
    [uwsgi]
    chdir = /tmp
    module = test.wsgi
    master = true
    processes = 3
    socket = 0.0.0.0:8002
    vacuum = true
    pythonpath = /usr/bin/python3
    pidfile = /tmp/js_back.pid
    #注释掉daemonize模式,因为Supervisor无法控制守护进程服务
    #daemonize  = /root/js_back/uwsgi.log
    

        3)演示使用supervisor管理程序

    [root@linux-node1 supervisord.d]# supervisord -c /etc/supervisord.conf  # 启动supervisor
    [root@linux-node1 supervisord.d]# ps -ef | grep supervisor              # 查看supervisor是否允许
    [root@linux-node1 tmp]# supervisorctl status                            # 查看supervisor管理的所有进程状态
    [root@linux-node1 supervisord.d]# supervisorctl restart test            # 启动test程序
    [root@linux-node1 supervisord.d]# supervisorctl stop all                # 停止所有程序
    

        4)supervisor常用命令

    [root@linux-node1 tmp]# supervisorctl status        # 查看supervisor管理所有进程的状态
    [root@linux-node1 tmp]# supervisorctl stop es       # 停止名称es程序(如果停止所有换成all)
    [root@linux-node1 tmp]# supervisorctl start es      # 启动项目名称es程序
    [root@linux-node1 tmp]# supervisorctl restart       # 重启项目名称es程序
    [root@linux-node1 tmp]# supervisorctl update        # 配置文件修改后使用该命令加载新的配置
    [root@linux-node1 tmp]# supervisorctl reload        # 重新启动配置中的所有程序
    

      

      3、在页面访问

          http://192.168.56.11:9001/

          

  • 相关阅读:
    springclould feign客户端添加全局参数
    mysql单向自动同步
    MongoDB的安装和配置(Windows系统)及遇到的常见问题解答
    电脑中安装多个jdk,eclipse的选择!
    css(外部样式表)中各种选择器(定义属性时)的优先级
    HTML5结合CSS的三种方法+结合JS的三种方法
    HTML5图片居中的问题
    html->html5->css->javascript(js)->jQuery->AJAX->JSON
    自定义方法实现ArrayList排序
    java,while循环的使用,接收用户的输入,进行不同的操作!
  • 原文地址:https://www.cnblogs.com/J-xiaowei/p/12782051.html
Copyright © 2011-2022 走看看