Created
May 15, 2013 23:43
-
-
Save mcasperson/5588341 to your computer and use it in GitHub Desktop.
Installing Supervisord 3 in RHEL
This file contains 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
yum install python-setuptools | |
Follow install instructions at http://supervisord.org/installing.html | |
Create /etc/init.d/supervisord | |
#!/bin/bash | |
# | |
# supervisord This scripts turns supervisord on | |
# | |
# 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 | |
# | |
# chkconfig: 345 83 04 | |
# | |
# description: supervisor is a process control utility. It has a web based | |
# xmlrpc interface as well as a few other nifty features. | |
# processname: supervisord | |
# config: /root/supervisord/conf/supervisord.conf | |
# pidfile: /tmp/supervisord.pid | |
# | |
# source function library | |
. /etc/rc.d/init.d/functions | |
# source system settings | |
[ -e /etc/sysconfig/supervisord ] && . /etc/sysconfig/supervisord | |
RETVAL=0 | |
start() { | |
echo "Starting supervisord: " | |
echo "PIDFILE: $PIDFILE" | |
if [ -e $PIDFILE ]; then | |
echo "ALREADY STARTED" | |
return 1 | |
fi | |
# start supervisord with options from sysconfig (stuff like -c) | |
/usr/bin/supervisord $OPTIONS | |
# show initial startup status | |
/usr/bin/supervisorctl $OPTIONS status | |
# only create the subsyslock if we created the PIDFILE | |
[ -e $PIDFILE ] && touch /var/lock/subsys/supervisord | |
} | |
stop() { | |
echo -n "Stopping supervisord: " | |
/usr/bin/supervisorctl $OPTIONS shutdown | |
if [ -n "$WAIT_FOR_SUBPROCESSES" ]; then | |
echo "Waiting roughly 60 seconds for $PIDFILE to be removed after child processes exit" | |
for sleep in 2 2 2 2 4 4 4 4 8 8 8 8 last; do | |
if [ ! -e $PIDFILE ] ; then | |
echo "Supervisord exited as expected in under $total_sleep seconds" | |
break | |
else | |
if [[ $sleep -eq "last" ]] ; then | |
echo "Supervisord still working on shutting down. We've waited roughly 60 seconds, we'll let it do its thing from here" | |
return 1 | |
else | |
sleep $sleep | |
total_sleep=$(( $total_sleep + $sleep )) | |
fi | |
fi | |
done | |
fi | |
# always remove the subsys. we might have waited a while, but just remove it at this point. | |
rm -f /var/lock/subsys/supervisord | |
} | |
restart() { | |
stop | |
start | |
} | |
case "$1" in | |
start) | |
start | |
RETVAL=$? | |
;; | |
stop) | |
stop | |
RETVAL=$? | |
;; | |
restart|force-reload) | |
restart | |
RETVAL=$? | |
;; | |
reload) | |
/usr/bin/supervisorctl $OPTIONS reload | |
RETVAL=$? | |
;; | |
condrestart) | |
[ -f /var/lock/subsys/supervisord ] && restart | |
RETVAL=$? | |
;; | |
status) | |
/usr/bin/supervisorctl $OPTIONS status | |
RETVAL=$? | |
;; | |
*) | |
echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" | |
exit 1 | |
esac | |
exit $RETVAL | |
Create /etc/sysconfig/supervisord | |
# Any extra options to run supervisord with | |
OPTIONS="-c /root/supervisord/conf/supervisord.conf" | |
# The file that stores the supervisord Process ID. This setting should be the same as the pidfile setting in the supervisord.conf file. | |
PIDFILE=/tmp/supervisord.pid | |
# unset this variable if you don't care to wait for child processes to shutdown before removing the /var/lock/subsys/supervisord lock | |
WAIT_FOR_SUBPROCESSES=yes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment