zoukankan      html  css  js  c++  java
  • 配置Supervisor管理进程

      在Linux中使用Supervisor来管理.Net Core项目进程。我尝试配置了CentOS和Ubuntu两个系统,还是有些差异的。

    CentOS.7-x64

    一、安装

      1、yum install supervisor

      如果提示yum源没有supervisor,则先安装epel源:

      1)yum install wget  #没有wget命令则先安装wget

      2)wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

      3)rpm -ivh epel-release-latest-7.noarch.rpm

      2、在etc目录下会生成 supervisord.conf(supervisor配置文件)和 supervisord.d(进程配置文件夹)

      

    二、配置

      1、配置待管理的进程

      1)进入进程配置文件夹 cd /etc/supervisord.d/

      2)在该目录创建进程配置文件 touch WebAPI.conf

      3)编辑 vim WebAPI.conf(没有 vim 命令就试试 vi 命令),添加进程配置信息。要启动几个进程,就对应添加几段信息

    [program:WebAPI]
    command=dotnet WebAPI.dll #要执行的命令,我这里运行.Net Core程序
    directory=/home/lys/WebAPI #命令执行的目录
    environment=ASPNETCORE_ENVIRONMENT=dev #环境变量
    user=root #进程执行的用户身份
    stopsignal=INT
    autostart=true #是否自动启动
    autorestart=true #是否自动重启
    startsecs=1 #自动重启间隔
    stderr_logfile=/var/log/WebAPI.err.log #标准错误日志
    stdout_logfile=/var/log/WebAPI.out.log #标准输出日志
    
    [program:WebAPI.AuthServer]
    ......
    进程配置

      2、配置Supervisor

      1)打开配置文件 vim /etc/supervisord.conf

      2)找到 [inet_http_server] 节点

    port=192.168.1.1:7002 # supervisor可视化管理url,可以配置为 *:port
    username=user
    password=123
    Supervisor配置

       * 注意去掉前面的“分号”

      3)找到 [include] 节点

    files = /etc/supervisord.d/*.conf # 这个就是进程配置文件路径
    Supervisor配置

    三、运行

      1、相关命令  

    • 停止Supervisor服务 service supervisord stop
    • 启动Supervisor服务 service supervisord start
    • 重启Supervisor服务 service supervisord restart

      2、管理进程

      启动后,通过 supervisorctl 命令查看进程状态,然后通过 stop/start/restart 进程名 管理进程,通过 status 查看所有进程运行状况;或者打开 http://192.168.1.1:7002(对应上面的配置) 管理进程,如图:

      如果启动Supervisor报错:什么true呀一些value值无效(具体信息忘了,大意是读取配置文件报错),这是因为在读取配置的value值时把注释也给识别进去了(不知道为啥),所以去 WebAPI.conf 把注释去掉即可。

      另外,启动项目进程时报错可以在 /var/log/WebAPI.err.log(对应上面的配置) 中查看详细信息。

    Ubuntu.16.04-x64

    一、安装

      sudo apt-get install supervisor

      这里和centos不一样的地方是,etc里只有 supervisor 文件夹,里面有 supervisord.conf(supervisor配置文件)和 conf.d(进程配置文件夹)

    二、配置

      1、配置待管理的进程

      1)进入进程配置文件夹 cd /ect/supervisor/conf.d/

      2)创建进程配置文件 touch WebAPI.conf

      3)编辑 vim WebAPI.conf,同CentOS

      * 如果提示无权访问,则 sudo chmod 777 WebAPI.conf 一下

      2、配置Supervisor

      1)打开配置文件 vim /etc/supervisor/supervisord.conf

      2)手动添加 [inet_http_server] 节点,信息同CentOS配置

    三、运行

    • sudo service supervisor stop  # 注意这里的进程名和CentOS也是不一样的
    • sudo service supervisor start
    • sudo service supervisor restart

      参考文档

    1. 官方文档
    2. ASP.NET Core Linux下为 dotnet 创建守护进程(必备知识)
    3. CentOS7下Supervisor安装与配置(Linux/Unix进程管理工具)
  • 相关阅读:
    Python语言之并发编程
    python语言之系统工具
    python语言之正则
    python语言之字符串与字节
    Python语言之持久化
    Python语言之数字格式化与时间
    Python语言之异常处理与测试
    Java-AQS源码详解(细节很多!)
    redis的主从复制原理
    Amdahl定律和可伸缩性
  • 原文地址:https://www.cnblogs.com/linys2333/p/10009252.html
Copyright © 2011-2022 走看看