zoukankan      html  css  js  c++  java
  • supervisor使用

    一、supervisor安装

    【安装】sudo apt-get install supervisor
    【重载】supervisorctl reload
    【示例】配置
    ==================================================
    [program:test]
    command=python -m SimpleHTTPServer
    ==================================================

    二、常用命令

    supervisorctl reload
    supervisorctl start test
    supervisorctl start _pro_name,启动某个进程
    supervisorctl restart _pro_name,重启某个进程
    supervisorctl stop groupworker: ,重启所有属于groupworker分组的进程(start,restart同理)
    supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
    supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
    supervisorctl update,根据最新配置,启动新配置或有改动的进程,配置没有改动不会受影响重启。
    supervisor启动和停止的日志文件存放在/var/log/supervisor/supervisord.log
    注意:显式用stop停止掉的进程,用reload或者update都不会自动重启

    三、配置config

    [program:zhaji_in]
    command= /home/admin1/work/middleware/app/ivs_samples/zhaji_in.sh ; 程序启动命令
    directory=/home/admin1/work/middleware/app/ivs_samples ; 执行前要不要先cd到目录去,一般不用
    numprocs=1 ; 启动几个进程
    autostart=true ; 在supervisord启动的时候也自动启动
    autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
    startretries=3 ; 启动失败自动重试次数,默认是3
    startsecs=3 ; 启动3秒后没有异常退出,就表示进程正常启动了,默认为1秒
    ;user=admin1 ; 用哪个用户启动进程,默认是root
    ;priority=999 ; 进程启动优先级,默认999,值小的优先启动

    redirect_stderr=true ; 把stderr重定向到stdout,默认false[*****]
    stdout_logfile=/etc/supervisor/log/zhaji_in.log
    stderr_logfile=/etc/supervisor/log/zhaji_in_err.log
    stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB
    stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10
    ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
    stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程
    exitcodes=0 ; 正常退出代码(是说退出代码是这个时就不再重启了吗?待确定)
    stopsignal=KILL ; 用来杀死进程的信号
    stopwaitsecs=10 ; 发送SIGKILL前的等待时间

    【问题】

    supervisor守护进程发现无法启动,报错是找不到JAVA_HOME,即使在flume_env.sh中配置了JAVA_HOME的路径也不行,supervisor在program的配置文件中有个environment配置,在配置文件最下面增加environment=JAVA_HOME="xxxxxx"即可,如果多个环境变量用逗号分隔environment=JAVA_HOME="xxxxxx",aaa="bbb"这种。

    supervisor 启动的时候是 /etc/init.d,所以环境变量根本没有加载起来,在启动脚本里加上就可以了。

    在 supervisor 配置文件.conf 中 加上 environment=PYTHONPATH=/opt/mypypath:%(ENV_PYTHONPATH)s,PATH=/opt/mypath:%(ENV_PATH)

    【参考】 https://stackoverflow.com/questions/12900402/supervisor-and-environment-variables

  • 相关阅读:
    HandlerMethodArgumentResolver[1]-Controller入参封装
    SpringMVC拦截器
    处理器映射器HandlerMapping
    SpringBoot启动流程
    SpringBoot自动配置原理
    DeferredImportSelector的处理
    Spring的SPI机制【spring.factories】
    Spring 5.3.x源码构建
    分析jvm的cpu,内存,回收问题
    F.A.Q常见问题处理
  • 原文地址:https://www.cnblogs.com/fieldtianye/p/8268333.html
Copyright © 2011-2022 走看看