• .Net Core 进程守护之Supervisor使用


    1、执行下列命令安装supervisor

    wget https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm
    
    rpm -ivh epel-release-latest-7.noarch.rpm
    
    yum install supervisor -y

    2、安装完成之后,我们到配置目录去添加两个配置文件,文件名可以自定义 ,因为我要部署webUI和webAPI两个应用程序,所以新建了两个配置文件:

    cd /etc/supervisord.d
    
    vi WebApplication.WebUI.ini
    
    vi WebApplication.WebAPI.ini
    WebApplication.WebUI.ini配置文件
    # 冒号后面为应用名称
    [program:WebApplication.WebUI]
    # 应用启动命令,需要dotnet的完整路径
    command=dotnet WebApplication.WebUI.dll --urls http://0.0.0.0:8888
    # 进程名称
    process_name=%(program_name)s
    # 应用启动的目录,否则应用会报找不到文件的错误
    directory=/data/apps/WebApplication.WebUI/
    # .net core 应用环境变量,表明是哪个环境
    environment=ASPNETCORE_ENVIRONMENT=Development
    # 执行用户
    user=root
    stopsignal=INT
    # 掉线是否自动重启
    autostart=true
    autorestart=true
    startsecs=3
    priority=1
    # 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
    stderr_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
    stderr_logfile_maxbytes=50MB
    stderr_logfile_backups=10
    # 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
    stdout_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
    stdout_logfile_maxbytes=50MB
    stdout_logfile_backups=10
    WebApplication.WebAPI.ini配置文件
    # 冒号后面为应用名称
    [program:WebApplication.WebAPI]
    # 应用启动命令,需要dotnet的完整路径
    command=dotnet WebApplication.WebAPI.dll --urls http://0.0.0.0:7777
    # 进程名称
    process_name=%(program_name)s
    # 应用启动的目录,否则应用会报找不到文件的错误
    directory=/data/apps/WebApplication.WebAPI/
    # .net core 应用环境变量,表明是哪个环境
    environment=ASPNETCORE_ENVIRONMENT=Development
    # 执行用户
    user=root
    stopsignal=INT
    # 掉线是否自动重启
    autostart=true
    autorestart=true
    
    startsecs=3
    priority=1
    # 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
    stderr_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
    stderr_logfile_maxbytes=50MB
    stderr_logfile_backups=10
    # 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
    stdout_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
    stdout_logfile_maxbytes=50MB
    stdout_logfile_backups=10

     3、启动Supervisor

    注意:WebApplication.WebUI和WebApplication.WebAPI 应用程序需要放在对应目录下/data/apps
    # 启动Supervisor
    supervisord -c /etc/supervisord.conf
    #查看状态
    supervisorctl status

    # 防火墙开放端口(作者两个应用端口号分别是7777、8888)
    firewall-cmd --add-port=8888/tcp --permanent
    firewall-cmd --add-port=7777/tcp --permanent
     

     


    4、Supervisor 后台管理页面设置

    vi /etc/supervisord.conf

    取消截图部分注释

     访问supervsior 后台管理页面,http://192.168.140.129:9001/


    5、
    bash终端控制

    #启动Supervisor
    supervisord -c /etc/supervisor/supervisord.conf
    # 查看状态
    supervisorctl status
    # 停止某个服务
    supervisorctl stop WebApplication1
    # 停止所有服务
    supervisorctl stop all
    # 开始某个服务
    supervisorctl start WebApplication1
    # 开始所有服务
    supervisorctl start all
    # 重启某个服务
    supervisorctl restart WebApplication1
    # 重启所有服务
    supervisorctl restart all
    # 重启Supervisor
    supervisorctl reload
    # 修改Supervisor
    supervisorctl update

    6、将supervsior 配置设置为开机自启动服务

    # 编辑服务文件
    vi /usr/lib/systemd/system/supervisord.service
    # 内容
    [Unit]
    Description=Supervisor
    [Service]
    Type=forking
    PIDFile=/var/run/supervisord.pid
    ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
    ExecStop=/usr/bin/supervisorctl shutdown
    ExecReload=/usr/bin/supervisorctl reload
    KillMode=process
    Restart=on-failure
    RestartSec=42s
    [Install]
    WantedBy=multi-user.target
    # 启动服务
    systemctl enable supervisord
    # 验证是否为开机自启动
    systemctl is-enabled supervisord 

     7、supervisord操作命令

    # 停止
    systemctl stop supervisord
    # 启动
    systemctl start supervisord
    # 状态
    systemctl status supervisord
    # 重载
    systemctl reload supervisord
    # 重启
    systemctl restart supervisord

    友情链接:

    https://www.cnblogs.com/chenxi001/p/13614831.html

    https://www.jianshu.com/p/9d3b993556b2




     
  • 相关阅读:
    Android中使用File文件进行数据存储
    Android 获取 json
    Android服务之Service
    php
    宝塔数据库连接不上
    idea中使用github
    elasticjob 当当的分布式定时任务管理
    定时任务规则生成器
    MySQL中group_concat()函数的排序方法
    mysql 中关于怎么写 row_number()over(order by) 类似的功能支持
  • 原文地址:https://www.cnblogs.com/sportsky/p/16109940.html
Copyright © 2020-2023  润新知