zoukankan      html  css  js  c++  java
  • Linux Supervisor 守护进程基本配置

    supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。

    组成部分
    supervisord:服务守护进程
    supervisorctl:命令行客户端
    Web Server:提供与supervisorctl功能相当的WEB操作界面
    XML-RPC Interface:XML-RPC接口

    查看版本信息:

    supervisord -v

    参考地址:http://beginman.cn/linux/2015/04/06/Supervisor/

    官网文档地址:http://www.supervisord.org

    安装:

    yum install python-setuptools
    
    easy_install supervisor

    配置:

    1、在etc下创建目录,并赋权限

    mkdir -m 700 -p /etc/supervisor

    2、在目录“ /etc/supervisor”下创建配置文件

    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    3、修改配置文件

    vim /etc/supervisor/supervisord.conf

    在文件末尾添加,注意首尾需无空格,需顶格

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

    4、在目录“/etc/supervisor”下创建dotnet core 进程配置文件存放目录“conf.d”

     mkdir -m 700 /etc/supervisor/conf.d

    5、创建进程配置文件,示例:Nginx和asp.net core的守护进程,关键配置:

    mkdir -m 700 /etc/supervisor/conf.d/OneAspNetCore.conf

    asp.net core

    [program:OneAspNetCore]
    command=dotnet OneAspNetCore.dll ; 运行程序的命令
    directory=/home/webapps/aspnet/ ; 执行前要不要先cd到目录去,一般不用
    autorestart = true   ; 程序异常退出后自动重启
    autostart=true       ; 随着supervisord的启动而启动
    startretries = 10     ; 启动失败自动重试次数,默认是 3
    numprocs=1           ; 启动几个进程
    stderr_logfile=/var/log/OneAspNetCore.err.log ; 错误日志文件
    stdout_logfile=/var/log/OneAspNetCore.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=KILL ; 用来杀死进程的
    stopsignal=INT

    注:这里的日志文件目录必须存在 supervisor不会创建该日志目录

    nginx

    [program:nginx]
    command=systemctl start nginx ; 运行程序的命令
    directory= ; 执行前要不要先cd到目录去,一般不用
    autorestart = true   ; 程序异常退出后自动重启
    autostart=true       ; 随着supervisord的启动而启动
    startretries = 10     ; 启动失败自动重试次数,默认是 3
    numprocs=1           ; 启动几个进程
    stderr_logfile=/var/log/nginx/nginx.err.log ; 错误日志文件
    stdout_logfile=/var/log/nginx/nginx.out.log ; 输出日志文件
    user=root ; 进程执行的用户身份
    stopsignal=KILL ; 用来杀死进程的
    stopsignal=INT

     启动Supervisor

    supervisord -c /etc/supervisor/supervisord.conf

    ps:如果服务已启动,修改配置文件可用“ supervisorctl reload ”命令来使其生效

    配置Supervisor开机启动

    新建一个“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

    将文件拷贝至:“/usr/lib/systemd/system/”

    执行命令:systemctl enable supervisord

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

    重启检测是否正常!!!

    web界面配置

    把配置文件中 inet_http_server 前面的分号去掉 在Supervisor中 ;是注释的格式 默认是不开启web界面的

    [inet_http_server]         ; inet (TCP) server disabled by default
    port=*:9001        ; (ip_address:port specifier, *:port for all iface)
    username=user              ; (default is no username (open server))
    password=123 

     

  • 相关阅读:
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 802 找到最终的安全状态 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    Java实现 LeetCode 803 打砖块 (DFS)
    Java实现 LeetCode 804 唯一摩尔斯密码词 (暴力)
    英文标点
    post sharp 与log4net 结合使用,含执行源码 转拷
  • 原文地址:https://www.cnblogs.com/miskis/p/6026452.html
Copyright © 2011-2022 走看看