#!/bin/sh HAPROXY=/usr/sbin/haproxy CONFIG=/etc/haproxy/haproxy.cfg PIDFILE=/var/run/haproxy.pid start() { if [ -r $PIDFILE ]; then echo 'HAProxy is already running!' return fi $HAPROXY -f $CONFIG -D -p $PIDFILE } stop() { if [ ! -r $PIDFILE ]; then echo 'HAProxy is not running!' return fi echo "Soft-stopping HAProxy..." kill -USR1 `cat $PIDFILE` # Even with the right permissions the PID file will not be removed... rm -f $PIDFILE } force_stop() { if [ ! -r $PIDFILE ]; then echo 'HAProxy is not running!' return fi echo "Hard-stopping HAProxy..." kill `cat $PIDFILE` # Even with the right permissions the PID file will not be removed... rm -f $PIDFILE } status() { if [ ! -r $PIDFILE ]; then echo "HAProxy is not running." return fi PID=`cat $PIDFILE` if [ -z "$PID" ]; then echo 'PID file is empty! HAProxy does not appear to be running, but there is a stale PID file.' elif kill -0 $PID; then echo "HAProxy is running." else echo "HAProxy is not running, but there is a stale PID file." fi } checkconfig() { $HAPROXY -c -q -V -f $CONFIG } case "$1" in 'start') start ;; 'stop') stop ;; 'force_stop') force_stop ;; 'restart') stop start ;; 'force_restart') force_stop start ;; 'status') status ;; 'checkconfig') checkconfig ;; *) echo "Usage: $0 {start|stop|force_stop|restart|force_restart|status|checkconfig}" exit 1 ;; esac