# Original: http://www.snip2code.com/Snippet/256399/Amazon-Elastic-Beanstalk-Sidekiq # .ebextensions/sidekiq.config commands: create_post_dir: command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post" ignoreErrors: true files: "/etc/rsyslog.d/11-sidekiq.conf": mode: '000644' content: | EB_CONFIG_APP_LOGS=$(/opt/elasticbeanstalk/bin/get-config container -k app_log_dir) $InputFileName $EB_CONFIG_APP_LOGS/sidekiq.log $InputFileTag sidekiq $InputFileStateFile sidekiq-state $InputFileSeverity info $InputFileFacility local6 $InputRunFileMonitor "/opt/elasticbeanstalk/hooks/appdeploy/post/50_restart_sidekiq": mode: "000755" content: | #!/bin/bash EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir) EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir) EB_CONFIG_APP_CURRENT=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir) EB_CONFIG_APP_LOGS=$(/opt/elasticbeanstalk/bin/get-config container -k app_log_dir) EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user) EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir) EB_CONFIG_APP_PIDS=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir) . $EB_SUPPORT_DIR/envvars . $EB_SCRIPT_DIR/use-app-ruby.sh cd $EB_CONFIG_APP_CURRENT PIDFILE=$EB_CONFIG_APP_PIDS/sidekiq.pid cd $EB_CONFIG_APP_CURRENT if [ -f $PIDFILE ] then SIDEKIQ_LIVES=$(/bin/ps -o pid= -p `cat $PIDFILE`) if [ -z $SIDEKIQ_LIVES ] then rm -rf $PIDFILE else kill -TERM `cat $PIDFILE` sleep 20 rm -rf $PIDFILE fi fi . $EB_SUPPORT_DIR/envvars.d/sysenv sleep 10 su -s /bin/bash -c "bundle exec sidekiq \ -P $EB_CONFIG_APP_PIDS/sidekiq.pid \ -C $EB_CONFIG_APP_CURRENT/config/sidekiq.yml \ -L $EB_CONFIG_APP_LOGS/sidekiq.log \ -d" $EB_APP_USER "/opt/elasticbeanstalk/hooks/appdeploy/pre/03_mute_sidekiq": mode: "000755" content: | #!/bin/bash EB_CONFIG_APP_PIDS=$(/opt/elasticbeanstalk/bin/get-config container -k app_pid_dir) PIDFILE=$EB_CONFIG_APP_PIDS/sidekiq.pid if [ -f $PIDFILE ] then SIDEKIQ_LIVES=$(/bin/ps -o pid= -p `cat $PIDFILE`) if [ -z $SIDEKIQ_LIVES ] then rm -rf $PIDFILE else kill -USR1 `cat $PIDFILE` sleep 10 fi fi