Last active
March 12, 2023 07:40
-
-
Save ashwch/da4e41af5db2fe96899bee665e5c6658 to your computer and use it in GitHub Desktop.
supervisord.sh for AWS-AMI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # | |
| # supervisord Startup script for the Supervisor process control system | |
| # | |
| # Author: Mike McGrath <mmcgrath@redhat.com> (based off yumupdatesd) | |
| # Jason Koppe <jkoppe@indeed.com> adjusted to read sysconfig, | |
| # use supervisord tools to start/stop, conditionally wait | |
| # for child processes to shutdown, and startup later | |
| # Erwan Queffelec <erwan.queffelec@gmail.com> | |
| # make script LSB-compliant | |
| # | |
| # chkconfig: 345 83 04 | |
| # description: Supervisor is a client/server system that allows \ | |
| # its users to monitor and control a number of processes on \ | |
| # UNIX-like operating systems. | |
| # processname: supervisord | |
| # config: /etc/supervisord.conf | |
| # config: /etc/sysconfig/supervisord | |
| # pidfile: /var/run/supervisord.pid | |
| # | |
| ### BEGIN INIT INFO | |
| # Provides: supervisord | |
| # Required-Start: $all | |
| # Required-Stop: $all | |
| # Short-Description: start and stop Supervisor process control system | |
| # Description: Supervisor is a client/server system that allows | |
| # its users to monitor and control a number of processes on | |
| # UNIX-like operating systems. | |
| ### END INIT INFO | |
| # Source function library | |
| . /etc/rc.d/init.d/functions | |
| # Source system settings | |
| if [ -f /etc/sysconfig/supervisord ]; then | |
| . /etc/sysconfig/supervisord | |
| fi | |
| # Source system settings | |
| if [ -f /opt/python/current/env ]; then | |
| . /opt/python/current/env | |
| fi | |
| # Path to the supervisorctl script, server binary, | |
| # and short-form for messages. | |
| supervisorctl=/var/app/venv/staging-LQM1lest/bin/supervisorctl | |
| supervisord=${SUPERVISORD-/var/app/venv/staging-LQM1lest/bin/supervisord} | |
| prog=supervisord | |
| pidfile=${PIDFILE-/tmp/supervisord.pid} | |
| lockfile=${LOCKFILE-/var/lock/subsys/supervisord} | |
| STOP_TIMEOUT=${STOP_TIMEOUT-60} | |
| OPTIONS="${OPTIONS--c /etc/supervisord.conf}" | |
| RETVAL=0 | |
| start() { | |
| echo -n $"Starting $prog: " | |
| daemon --pidfile=${pidfile} $supervisord $OPTIONS | |
| RETVAL=$? | |
| echo | |
| if [ $RETVAL -eq 0 ]; then | |
| touch ${lockfile} | |
| $supervisorctl $OPTIONS status | |
| fi | |
| return $RETVAL | |
| } | |
| stop() { | |
| echo -n $"Stopping $prog: " | |
| killproc -p ${pidfile} -d ${STOP_TIMEOUT} $supervisord | |
| RETVAL=$? | |
| echo | |
| [ $RETVAL -eq 0 ] && rm -rf ${lockfile} ${pidfile} | |
| } | |
| reload() { | |
| echo -n $"Reloading $prog: " | |
| LSB=1 killproc -p $pidfile $supervisord -HUP | |
| RETVAL=$? | |
| echo | |
| if [ $RETVAL -eq 7 ]; then | |
| failure $"$prog reload" | |
| else | |
| $supervisorctl $OPTIONS status | |
| fi | |
| } | |
| restart() { | |
| stop | |
| start | |
| } | |
| case "$1" in | |
| start) | |
| start | |
| ;; | |
| stop) | |
| stop | |
| ;; | |
| status) | |
| status -p ${pidfile} $supervisord | |
| RETVAL=$? | |
| [ $RETVAL -eq 0 ] && $supervisorctl $OPTIONS status | |
| ;; | |
| restart) | |
| restart | |
| ;; | |
| condrestart|try-restart) | |
| if status -p ${pidfile} $supervisord >&/dev/null; then | |
| stop | |
| start | |
| fi | |
| ;; | |
| force-reload|reload) | |
| reload | |
| ;; | |
| *) | |
| echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|reload}" | |
| RETVAL=2 | |
| esac | |
| exit $RETVAL |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment