zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    导入动态页面的两种方法
    JSTL之c:set
    CentOS更新源
    MVC轻量web应用
    Linux设备驱动开发流程(转)
    g++: internal compiler error: Killed (program cc1plus)Please submit a full bug report,内存不足问题解决
    .PHONY的作用
    CMake(转)
    关于a+++++b含义的问题
    返回值为函数指针的函数(转)
  • 原文地址:https://www.cnblogs.com/letnet/p/12060152.html
Copyright © 2011-2022 走看看