• Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护


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

    Supervisor 不支持任何版本的 Window 系统;仅支持在 Python2.4 或更高版本,但不能在任何版本的 Python 3 下工作。

    联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(Python 包管理工具)的一个功能。所以先执行如下命令安装 setuptools:yum install python-setuptools

    然后执行如下命令安装 Supervisor:easy_install supervisor

    输入命令查看配置文件模板来验证安装:echo_supervisord_conf

    接着通过如下命令创建目录,这目录是为了让 Supervisor 加载默认配置用的目录:mkdir /etc/supervisor

    加载目录有了,然后通过echo_supervisord_conf程序(用来生成初始配置文件)来初始化一个配置文件:echo_supervisord_conf > /etc/supervisor/supervisord.conf

    打开新的配置文件修改:vi /etc/supervisor/supervisord.conf

    将底部的:

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

    修改为:

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

    这样supervisord加载时就会自动加载/etc/supervisor/conf.d目录下,所有扩展名为.conf的配置文件。

    通过命令进入/conf.d目录:cd /etc/supervisor/conf.d

    创建并写入配置信息:vi testweb.conf

    [program:testweb]
    command= dotnet TestWeb.dll --urls="http://*:8080"
    directory= /home/vsftpd/lk_ftp/TestWeb
    autostart=true
    autorestart=true
    startretries=5
    startsecs=1
    user=root
    priority=999
    stderr_logfile=/var/log/WebApplication1.err.log
    stdout_logfile=/var/log/WebApplication1.out.log
    environment=ASPNETCORE_ENVIRONMENT=Production
    stopsignal=INT

    program:自定义进程名称
    command:程序启动命令
    directory:命令执行的目录,即项目部署路径
    autostart:在Supervisord启动时,程序是否启动
    autorestart:程序退出后自动重启
    startretries:启动失败自动重试次数,默认是3
    startsecs:自动重启间隔
    user:设置启动进程的用户,默认是root
    priority:进程启动优先级,值小的优先启动
    stderr_logfile:标准错误日志
    stdout_logfile:标准输出日志
    environment:进程环境变量
    stopsignal:请求停止时用来杀死程序的信号

    完成配置后就可以启动Supervisor 服务了:supervisord -c /etc/supervisor/supervisord.conf

    每次修改配置文件后,都要执行重启命令,这里要注意,因为没有环境变量,这种命令都要在supervisor安装目录里执行。

    查看是否生效:ps -ef | grep dotnet

    进入/usr/lib/systemd/system目录,配置Supervisor开机启动:cd /usr/lib/systemd/system

    新建一个“supervisord.service”文件写入配置:vi supervisord.service

    # supervisord service for systemd (CentOS 7.0+)
    # by ET-CS (https://github.com/ET-CS)
    [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

    设置为随系统自动启动:systemctl enable supervisor

     

    执行命令来验证是否为开机启动:systemctl is-enabled supervisord

  • 相关阅读:
    【Javascript】javascript学习 二十二 JavaScript 对象简介
    【Javascript】javascript学习 二十六 JavaScript Boolean(逻辑)对象
    【Javascript】javascript学习 二十九 JavaScript HTML DOM 对象
    【Javascript】javascript学习 二十八 JavaScript RegExp 对象
    【Javascript】javascript学习 二十一 JavaScript 指导方针
    【Javascript】javascript学习 二十三 JavaScript 字符串(String)对象
    【Javascript】javascript学习 三十 JavaScript 浏览器检测
    【Javascript】javascript学习 二十五 JavaScript Array(数组)对象
    【Javascript】javascript学习 二十四 JavaScript Date(日期)对象
    【Javascript】javascript学习 二十七 JavaScript Math(算数)对象
  • 原文地址:https://www.cnblogs.com/letnet/p/12060152.html
Copyright © 2020-2023  润新知