Created
October 22, 2011 09:30
-
-
Save simple/1305810 to your computer and use it in GitHub Desktop.
SysV init script for HAProxy
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/sh | |
# | |
# haproxy tcp/http proxy daemon | |
# | |
# chkconfig: <default runlevel(s)> <start> <stop> | |
# description: tcp/http proxy daemon, installed for ESG server proxy | |
# | |
### BEGIN INIT INFO | |
# Provides: | |
# Required-Start: | |
# Required-Stop: | |
# Should-Start: | |
# Should-Stop: | |
# Default-Start: | |
# Default-Stop: | |
# Short-Description: | |
# Description: | |
### END INIT INFO | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
exec="/usr/local/sbin/haproxy" | |
prog="haproxy" | |
config="/etc/haproxy/haproxy.cfg" | |
pidfile="/var/run/$prog.pid" | |
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog | |
start() { | |
[ -x $exec ] || exit 5 | |
[ -f $config ] || exit 6 | |
echo -n $"Starting $prog: " | |
# if not running, start it up here, usually something like "daemon $exec" | |
$exec -f $config -D -p $pidfile | |
retval=$? | |
[ $retval -eq 0 ] && echo " started" | |
return $retval | |
} | |
stop() { | |
echo -n $"Stopping $prog: " | |
# stop it here, often "killproc $prog" | |
for pid in `cat $pidfile` | |
do | |
/bin/kill $pid || return 4 | |
done | |
retval=$? | |
if [ $retval -eq 0 ]; then | |
echo " stopped" | |
rm -f $pidfile | |
fi | |
return $retval | |
} | |
restart() { | |
stop | |
start | |
} | |
reload() { | |
restart | |
} | |
force_reload() { | |
restart | |
} | |
rh_status() { | |
# run checks to determine if the service is running or use generic status | |
if [ ! -f $pidfile ] ; then | |
echo "# program not running" | |
return 3 | |
fi | |
for pid in $(cat $pidfile) ; do | |
if ! ps --no-headers p "$pid" | grep haproxy > /dev/null ; then | |
echo "# program running, bogus pidfile" | |
return 1 | |
fi | |
done | |
echo "$prog is running" | |
return 0 | |
} | |
rh_status_q() { | |
rh_status >/dev/null 2>&1 | |
} | |
case "$1" in | |
start) | |
rh_status_q && exit 0 | |
$1 | |
;; | |
stop) | |
rh_status_q || exit 0 | |
$1 | |
;; | |
restart) | |
$1 | |
;; | |
reload) | |
rh_status_q || exit 7 | |
$1 | |
;; | |
force-reload) | |
force_reload | |
;; | |
status) | |
rh_status | |
;; | |
condrestart|try-restart) | |
rh_status_q || exit 0 | |
restart | |
;; | |
*) | |
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" | |
exit 2 | |
esac | |
exit $? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
used Fedora template(http://fedoraproject.org/wiki/Packaging:SysVInitScript).
borrowed ubuntu package's pid handling.