Skip to content

Instantly share code, notes, and snippets.

@amandiobm
Forked from StefanieD/Readme.md
Created May 9, 2019 01:04
Show Gist options
  • Select an option

  • Save amandiobm/319f11a7a1f4b3adf3aa4d1b14c85bc1 to your computer and use it in GitHub Desktop.

Select an option

Save amandiobm/319f11a7a1f4b3adf3aa4d1b14c85bc1 to your computer and use it in GitHub Desktop.

Revisions

  1. @StefanieD StefanieD created this gist Jul 3, 2015.
    6 changes: 6 additions & 0 deletions Readme.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    - Place the supervisord.conf under .ebextensions/supervisor/

    - Place the supervisor.config under .ebextensions/

    - Place the data_import_consumer.conf under .ebextensions/supervisor/

    10 changes: 10 additions & 0 deletions data_import_consumer.conf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    [program:data_import_consumer]
    process_name= %(process_num)s
    command= /usr/bin/php /var/app/current/api/app/console rabbitmq:multiple-consumer -m 30 import_data
    autostart=true
    autorestart=unexpected
    stderr_logfile=/var/log/app/rabbitmq/data_import_consumer.err.log
    stdout_logfile=/var/log/app/rabbitmq/data_import_consumer.out.log
    numprocs=3
    exitcodes=1
    startsecs=0
    64 changes: 64 additions & 0 deletions supervisor.config
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,64 @@
    commands:
    11install_supervisor:
    test : '[ ! /etc/supervisor ] && echo "supervisor not installed"'
    command: "easy_install supervisor"


    container_commands:
    14insert_supervisor_main_config:
    command: ". /opt/elasticbeanstalk/support/envvars && cat .ebextensions/supervisor/supervisord.conf > /etc/supervisor/supervisord.conf"
    leader_only: true
    15insert_supervisor_main_config_to_etc:
    command: ". /opt/elasticbeanstalk/support/envvars && cat .ebextensions/supervisor/supervisord.conf > /etc/supervisord.conf"
    leader_only: true
    16insert_data_import_supervisor_config:
    command: ". /opt/elasticbeanstalk/support/envvars && cat .ebextensions/supervisor/data_import_consumer.conf > /etc/supervisor/conf.d/data_import_consumer.conf"
    leader_only: true

    files:
    "/opt/elasticbeanstalk/hooks/appdeploy/post/490-supervisor_install.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
    #!/usr/bin/env bash
    . /opt/elasticbeanstalk/support/envvars

    if [ ! -f /usr/local/bin/supervisord ]; then
    echo "install supervisor and create directories"
    easy_install supervisor
    else
    echo "supervisor already installed"
    fi

    if [ ! -d /etc/supervisor ]; then
    mkdir /etc/supervisor
    echo "create supervisor directory"
    fi

    if [ ! -d /etc/supervisor/conf.d ]; then
    mkdir /etc/supervisor/conf.d
    echo "create supervisor configs directory"
    fi
    "/opt/elasticbeanstalk/hooks/appdeploy/post/500-supervisor_update.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
    #!/usr/bin/env bash
    . /opt/elasticbeanstalk/support/envvars

    if ps aux | grep -q "[/]usr/local/bin/supervisord"; then
    echo "supervisor is running"
    else
    echo "start supervisor"
    /usr/bin/python /usr/local/bin/supervisord --pidfile /var/run/supervisord.pid
    fi

    supervisorctl reread
    supervisorctl update

    cd /var/app/current/api
    app/console rabbitmq:setup-fabric --env=$SYMFONY_ENV

    echo "$(date +'%Y%m%d %T') Check for supervisor update" >> /var/log/directory-hooks-executor.log
    27 changes: 27 additions & 0 deletions supervisord.conf
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    [unix_http_server]
    file=/tmp/supervisor.sock ; (the path to the socket file)

    [supervisord]
    logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
    logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
    logfile_backups=10 ; (num of main logfile rotation backups;default 10)
    loglevel=info ; (log level;default info; others: debug,warn,trace)
    pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
    nodaemon=false ; (start in foreground if true;default false)
    minfds=1024 ; (min. avail startup file descriptors;default 1024)
    minprocs=200 ; (min. avail process descriptors;default 200)
    environment=SYMFONY_ENV=prod

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

    [supervisorctl]
    serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket

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

    [inet_http_server]
    port = 9000
    username = user
    password = pw