• Centos7运行NETCore完整教程(四):Supervisor


    目录

    1.介绍Supervisor

    2.安装Supervisor

    3.配置Supervisor

    4.开机启动Supervisor服务


    1.介绍Supervisor

     Supervisor 是用 Python 开发的 Linux/Unix 系统下的一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。

    NETCore目前存在三个问题

    问题1:NETCore目前在终端dotnet运行,如果关闭终端则NETCore应用被关闭,从而导致应用无法访问。

    问题2:如果NETCore进程意外终止那么需要人为进行再次启动,往往这种操作都不够及时。

    问题3:如果服务器宕机或需要重启我们则还是需要进入终端dotnet运行。

    以上问题就需要用Supervisor来解决。

    2.安装Supervisor

    打开终端,切换到root用户,执行以下指令,安装

    yum install python-setuptools
    easy_install supervisor

    3.配置Supervisor

    1.先创建Supervisor配置文件的目录

    mkdir /etc/supervisor

    2.通过 echo_supervisord_conf 指令(用来生成初始配置文件,文件名可以自定义)来初始化一个配置文件:

    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    3.通过vim命令修改创建好的supervisord.conf配置信息,或有视图界面的直接打开编辑

    vi /etc/supervisor/supervisord.conf

    文件内容末尾找到以下内容进行修改

    ;[include]
    ;files = relative/directory/*.ini

    改成以下内容,注意要把“;”去掉

    [include]
    files = /etc/supervisor/conf.d/*.conf

    即,把注释去除、设置/etc/supervisor/conf.d为 Supervisor 进程配置文件加载目录。

    这样,Supervisor 会自动加载该目录下.conf后缀的文件作为共同服务配置。Supervisor 管理的每个进程单独写一个配置文件放在该目录下,supervisord.conf配置文件中保留公共配置。

    4.通过以下指令,创建目录,添加配置文件

    mkdir /etc/supervisor/conf.d
    cd /etc/supervisor/conf.d
    touch netcore.conf
    ll

    通过vi指令或视图界面编辑netcore.conf,添加以下配置内容(分号后面的是注释,注意看注释,免得配置错了):

    [program:NETCore]                                         ;自定义进程名称, 根据自己喜好命名
    command=dotnet GDSMPlateForm.dll                          ;程序启动命令 使用dotnet 命令(dll是你的项目文件)
    directory=/root/Documents/NETCore                         ;命令执行的目录 你.NET Core 程序存放目录
    autostart=true                                            ;在Supervisord启动时,程序是否启动
    autorestart=true                                          ;程序退出后自动重启
    startretries=5                                            ;启动失败自动重试次数,默认是3
    startsecs=1                                               ;自动重启间隔
    user=root                                                 ;设置启动进程的用户,默认是root
    priority=999                                              ;进程启动优先级,默认999,值小的优先启动
    stderr_logfile=/etc/supervisor/log/GDSMPlateForm.err.log  ;标准错误日志 路径可以自定义,文件夹要建好
    stdout_logfile=/etc/supervisor/log/GDSMPlateForm.out.log  ;标准输出日志 路径可以自定义,文件夹要建好
    environment=ASPNETCORE_ENVIRONMENT=Production             ;进程环境变量
    stopsignal=INT                                            ;请求停止时用来杀死程序的信号

    5.启动supervisor服务

    supervisord -c /etc/supervisor/supervisord.conf

    如果出现以下情况:

    表示监听的端口被占用了,将占用端口的程序关了或者重启系统再尝试启动supervisor服务。

    成功启动后,我们就不需要用dotnet命令运行程序, 同样可以访问我们部署的.NET Core程序了。

    4.开机启动Supervisor服务

    1.进入/usr/lib/systemd/system/目录

    cd /usr/lib/systemd/system/

    2.创建自定义配置文件supervisord.service

    touch supervisord.service

    3.编辑supervisord.service文件,有视图界面就直接打开编辑

    vi supervisord.service

    4.添加以下内容,保存退出

    [Unit]
    Description=Supervisor daemon
     
    [Service]
    Type=forking
    ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
    ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
    ExecReload=/usr/bin/supervisorctl $OPTIONS reload
    KillMode=process
    Restart=on-failure
    RestartSec=42s
     
    [Install]
    WantedBy=multi-user.target

    5.设置开机启动

    systemctl enable supervisord.service

    6.检测是否配置成功

    systemctl is-enabled supervisord

    出现enabled表示设置成功,也可重启服务器验证。

    重启Supervisor服务,更新站点的时候需要重启下该服务

    supervisorctl reload
    
  • 相关阅读:
    Bioinfomatics dataset
    在Vue中使用sass和less,并解决报错问题(this.getOptions is not a function)
    axios获取文件流并下载文件
    原码,反码,补码总结
    leetcode_sql
    Mysql中Limit用法三个简单事例
    idea新建maven项目没有target文件夹
    重启mysql
    Windows下载安装netcat(nc)命令
    启动hive
  • 原文地址:https://www.cnblogs.com/zt102545/p/13940236.html
Copyright © 2020-2023  润新知