zoukankan      html  css  js  c++  java
  • Ubuntu安装守护进程supervisor

    Supervisor安装与配置(Linux/Unix进程管理工具)

    asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel)

    为了保证服务能够稳定运行,我们安装守护进程以确保在应用程序出现异常中断时能够正常重启。

       1. 安装

    sudo apt-get install supervisor

    配置文件参数说明

    supervisor的配置参数较多,下面介绍一下常用的参数配置,详细的配置及说明,请参考官方文档介绍。 
    注:分号(;)开头的配置表示注释

    vim /etc/supervisor/supervisord.conf
    [unix_http_server] file
    =/tmp/supervisor.sock ;UNIX socket 文件,supervisorctl 会使用 ;chmod=0700 ;socket文件的mode,默认是0700 ;chown=nobody:nogroup ;socket文件的owner,格式:uid:gid ;[inet_http_server] ;HTTP服务器,提供web管理界面 ;port=127.0.0.1:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性 ;username=user ;登录管理后台的用户名 ;password=123 ;登录管理后台的密码 [supervisord] logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD/supervisord.log logfile_maxbytes=50MB ;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小 logfile_backups=10 ;日志文件保留备份数量默认10,设为0表示不备份 loglevel=info ;日志级别,默认info,其它: debug,warn,trace pidfile=/tmp/supervisord.pid ;pid 文件 nodaemon=false ;是否在前台启动,默认是false,即以 daemon 的方式启动 minfds=1024 ;可以打开的文件描述符的最小值,默认 1024 minprocs=200 ;可以打开的进程数的最小值,默认 200 [supervisorctl] serverurl=unix:///tmp/supervisor.sock ;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致 ;serverurl=http://127.0.0.1:9001 ; 通过HTTP的方式连接supervisord ;[program:xx]是被管理的进程配置参数,xx是进程的名称 [program:xx] command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run ; 程序启动命令 autostart=true ; 在supervisord启动的时候也自动启动 startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒 autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启 startretries=3 ; 启动失败自动重试次数,默认是3 user=tomcat ; 用哪个用户启动进程,默认是root priority=999 ; 进程启动优先级,默认999,值小的优先启动 redirect_stderr=true ; 把stderr重定向到stdout,默认false stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10 ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件) stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程 killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程 ;包含其它配置文件 [include] files = relative/directory/*.ini ;可以指定一个或多个以.ini结束的配置文件

      2. 安装成功后进入:/etc/supervisor/conf.d/ 目录,添加 程序名称.conf 文件,添加如下内容:

    [program:程序名称]
    command=dotnet 程序名称.dll //要执行的命令
    directory=/home/www/ossoffical //命令执行的目录
    environment=ASPNETCORE__ENVIRONMENT=Production //环境变量
    user=gitlab-runner //进程执行的用户身份
    stopsignal=INT
    autostart=true
    autorestart=true
    startsecs=3    //自动重启间隔
    stderr_logfile=/var/log/程序名称.err.log    //标准错误日志
    stdout_logfile=/var/log/程序名称.out.log     //标准输出日志

    把对应的目录和名称换掉即可,请删除注释,否则有时会出现命令执行失败的情况。完毕之后重启supervisor:  

    sudo service supervisor stop
    sudo service supervisor start
    supervisorctl shutdown #关闭所有任务
    supervisorctl stop|start program_name #启动或停止服务
    supervisorctl status #查看所有任务状态

    完成之后可以杀掉进程或者重启机器测试。

    重启supervisor,让配置文件生效,然后运行命令supervisorctl启动进程:

    # supervisorctl start 程序名称

    停止进程:

    # supervisorctl stop 程序名称

    配置supervisord开机启动

    1、在指定目录下创建文件supervisord.service

    vim /usr/lib/systemd/system/supervisord.service

    2、输入以下内容:

    [Unit]
    Description=Supervisor daemon 
    
    [Service]
    Type=forking
    ExecStart=/usr/bin/supervisord -c /etc/supervisor/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

    提示:

    Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.

    验证是否为开机启动:

    systemctl is-enabled supervisord

    提示:

    enabled

    表示设置成功!

    至此,创建supervisor守护进程完毕。

  • 相关阅读:
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 88怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 81.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 40怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 24.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 21.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器试运行提示过速度保护怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器如何执行绝对值清零
    倍福TwinCAT(贝福Beckhoff)基础教程 松下绝对值驱动器如何做初始化设置
    倍福TwinCAT(贝福Beckhoff)基础教程 松下官方软件开启报错伺服未就绪怎么办
    JAVA Eclipse 启动 Eclipse 弹出“Failed to load the JNI shared library jvm_dll”怎么办
  • 原文地址:https://www.cnblogs.com/qiyebao/p/7456564.html
Copyright © 2011-2022 走看看