我可以知道如何通过.ebextension将主管安装到Elastic Beanstalk中吗?以及如何通过.ebextension执行主管命令?

最佳答案

Supervisorctl和supervisor已存在于/usr/local/bin目录中的elasticbeanstalk实例上。您可以使用ebextensions加载主管配置文件并以守护程序模式运行主管。

在您的.ebextensions文件夹中,创建一个文件002_supervisor.config

该文件执行3件事:

  • 在弹性beantalk实例上的/usr/local/etc中创建一个supervisor.conf文件。
  • 创建一个init.d脚本,以便主管在系统启动时作为守护程序运行
  • 部署应用程序时在主管上重新启动

  • 文件:
    /usr/local/etc/supervisord.conf:
    模式:“000755”
    所有者:root
    组:根
    内容:
    [unix_http_server]
    file =/tmp/supervisor.sock; (套接字文件的路径)

    [主管]
    logfile =/tmp/supervisord.log; (主日志文件;默认$ CWD/supervisord.log)
    logfile_maxbytes = 50MB; (最大主日志文件字节b4轮换;默认50MB)
    logfile_backups = 10; (主日志文件轮换备份的数量;默认为10)
    loglevel = info; (日志级别;默认信息;其他:调试,警告,跟踪)
    pidfile =/tmp/supervisord.pid; (supervisord pidfile;默认supervisord.pid)
    nodaemon = false; (如果为true,则从前台开始;默认为false)
    minfds = 1024; (最小可用启动文件描述符;默认为1024)
    minprocs = 200; (最小可用进程描述符;默认为200)

    [rpcinterface:主管]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

    [主管]
    serverurl = unix:///tmp/supervisor.sock;使用unix://URL作为unix套接字

    [包括]
    文件=/usr/local/etc/*.conf

    [inet_http_server]
    端口= 127.0.0.1:9001
    /etc/init.d/supervisord:
    模式:“000755”
    所有者:root
    组:根
    内容:
    #!/bin/bash

    #源函数库
    。/etc/rc.d/init.d/functions

    #源系统设置
    如果[-f/etc/sysconfig/supervisord];然后
    。/etc/sysconfig/supervisord
    科幻

    #supervisorctl脚本的路径,服务器二进制文件,
    #和消息的简写形式。
    administratorctl =/usr/local/bin/supervisorctl
    super 用户= $ {SUPERVISORD-/usr/local/bin/supervisord}
    prog =主管
    pidfile = $ {PIDFILE-/tmp/supervisord.pid}
    lockfile = $ {LOCKFILE-/var/lock/subsys/supervisord}
    STOP_TIMEOUT = $ {STOP_TIMEOUT-60}
    OPTIONS =“$ {OPTIONS--c/usr/local/etc/supervisord.conf}”
    RETVAL = 0

    开始() {
    echo -n $“启动$ prog:”
    守护程序--pidfile = $ {pidfile} $ supervisord $ OPTIONS
    RETVAL = $?
    回声
    如果[$ RETVAL -eq 0];然后
    触摸$ {lockfile}
    $ supervisorctl $ OPTIONS状态
    科幻
    返回$ RETVAL
    }

    停止() {
    echo -n $“停止$ prog:”
    killproc -p $ {pidfile} -d $ {STOP_TIMEOUT} $ supervisord
    RETVAL = $?
    回声
    [$ RETVAL -eq 0] && rm -rf $ {lockfile} $ {pidfile}
    }

    reload(){
    echo -n $“重新加载$ ​​prog:”
    LSB = 1 killproc -p $ pidfile $ supervisord -HUP
    RETVAL = $?
    回声
    如果[$ RETVAL -eq 7];然后
    失败$“$ prog重新加载”
    别的
    $ supervisorctl $ OPTIONS状态
    科幻
    }

    重新开始() {
    停止
    开始
    }

    案例“$ 1”在
    开始)
    开始
    ;;
    停止)
    停止
    ;;
    地位)
    状态-p $ {pidfile} $ supervisord
    RETVAL = $?
    [$ RETVAL -eq 0] && $ supervisorctl $ OPTIONS状态
    ;;
    重新开始)
    重新开始
    ;;
    condrestart |尝试重新启动)
    如果status -p $ {pidfile} $ supervisord>&/dev/null;然后
    停止
    开始
    科幻
    ;;
    强制重载|重载)
    重装
    ;;
    *)
    echo $“用法:$ prog {开始|停止|重新启动| condrestart |尝试重新启动|强制重新加载|重新加载}”
    RETVAL = 2
    埃萨克

    退出$ RETVAL

    命令:
    01_start_supervisor:
    命令:“/etc/init.d/supervisord restart”
    leader_only:是

    希望这可以帮助!

    关于amazon-web-services - 如何通过.ebextension在Elastic Beanstalk中安装主管?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46712166/

    10-11 06:47