#!/bin/sh ### BEGIN INIT INFO # Provides: haproxy # Required-Start: $local_fs $network # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: fast and reliable load balancing reverse proxy # Description: This file should be used to start and stop haproxy. ### END INIT INFO # Author: Arnaud Cornet # Extended by: Holger Just # Modified by Joe Williams PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin PIDFILE=/var/run/haproxy.pid CONFIG_FILE=haproxy.cfg CONFIG_DIR=/etc/haproxy CONFIG=$CONFIG_DIR/$CONFIG_FILE CONFIG_DIR=/etc/haproxy HAPROXY=/usr/local/sbin/haproxy HAPROXY_JOIN=/usr/bin/haproxy_join EXTRAOPTS= test -x $HAPROXY || exit 0 test -f "$CONFIG" || exit 0 if [ -e /etc/default/haproxy ]; then . /etc/default/haproxy fi test "$ENABLED" != "0" || exit 0 [ -f /etc/default/rcS ] && . /etc/default/rcS . /lib/lsb/init-functions haproxy_start() { haproxy_create_config || return 5 start-stop-daemon --start --pidfile "$PIDFILE" \ --exec $HAPROXY -- -f "$CONFIG" -D -p "$PIDFILE" \ $EXTRAOPTS || return 2 return 0 } haproxy_stop() { if [ ! -f $PIDFILE ] ; then # This is a success according to LSB return 0 fi for pid in $(cat $PIDFILE) ; do /bin/kill $pid || return 4 done rm -f $PIDFILE return 0 } haproxy_create_config() { $HAPROXY_JOIN "$CONFIG_FILE" "$CONFIG_DIR" || return 5 return 0 } haproxy_reload() { haproxy_create_config || return 5 $HAPROXY -f "$CONFIG" -p $PIDFILE -D $EXTRAOPTS -sf $(cat $PIDFILE) \ || return 2 return 0 } haproxy_status() { if [ ! -f $PIDFILE ] ; then # program not running return 3 fi for pid in $(cat $PIDFILE) ; do if ! ps --no-headers p "$pid" | grep haproxy > /dev/null ; then # program running, bogus pidfile return 1 fi done return 0 } haproxy_check() { return `$HAPROXY -f "$CONFIG" -c` } case "$1" in start) log_daemon_msg "Starting haproxy" "haproxy" haproxy_start ret=$? case "$ret" in 0) log_end_msg 0 ;; 1) log_end_msg 1 echo "pid file '$PIDFILE' found, haproxy not started." ;; 2) log_end_msg 1 ;; esac exit $ret ;; stop) log_daemon_msg "Stopping haproxy" "haproxy" haproxy_stop ret=$? case "$ret" in 0|1) log_end_msg 0 ;; 2) log_end_msg 1 ;; esac exit $ret ;; reload|force-reload) log_daemon_msg "Reloading haproxy" "haproxy" haproxy_reload case "$?" in 0|1) log_end_msg 0 ;; 2) log_end_msg 1 ;; esac ;; restart) log_daemon_msg "Restarting haproxy" "haproxy" haproxy_stop haproxy_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; 2) log_end_msg 1 ;; esac ;; status) haproxy_status ret=$? case "$ret" in 0) echo "haproxy is running." ;; 1) echo "haproxy dead, but $PIDFILE exists." ;; *) echo "haproxy not running." ;; esac exit $ret ;; check) haproxy_check ret=$? case "$ret" in 0) echo "haproxy configuration is ok." ;; *) echo "haproxy configration is erroneous" ;; esac exit $ret ;; *) echo "Usage: /etc/init.d/haproxy {start|stop|reload|restart|status|check}" exit 2 ;; esac