#!/bin/bash
#一键安装haproxy
kernel=$(echo "linux$(uname -r |cut -b 1-3|tr -d ".")")
arch=$(uname -a |awk '{print $(NF-1)}')
location="/usr/local/service/haproxy"
wget -O /tmp/haproxy-1.7.7.tar.gz http://www.haproxy.org/download/1.7/src/haproxy-1.7.7.tar.gz
tar zxf /tmp/haproxy-1.7.7.tar.gz -C /tmp
cd /tmp/haproxy-1.7.7
make TARGET=$kernel ARCH=$arch PREFIX=$location
make install PREFIX=/$location
#!/bin/bash
haproxy_home="$(readlink -f $(dirname $0))"
haproxy_bin="$haproxy_home/sbin/haproxy"
haproxy_conf="$haproxy_home/etc/auth.cfg"
start() {
$haproxy_bin -f $haproxy_conf
[ "$?" = "0" ] && echo "Process Start,Pid:$(cat $haproxy_home/haproxy.pid)"
}
stop() {
pid1=$(ps -ef |grep haproxy |grep -v grep |awk '{print $2}')
pid2=$(netstat -ntpl |grep "haproxy"|awk '{print $NF}'|awk -F "/" '{ print ( $(NF-1) ) }')
if [ -z "$pid1" ] && [ -z "$pid2"] ;then
echo "no process."
elif [ "$pid1" = "$pid2" ];then
kill -15 $pid1
echo "PID:$pid1 killed."
else
echo "kill error."
fi
}
reload() {
$haproxy_bin -f $haproxy_conf -sf $(cat $haproxy_home/haproxy.pid)
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
reload
;;
*)
echo "Usage: \n bash $0 [start|stop|restart|reload]"
;;
esac