CentOS install MemCache

CentOS编译安装MemCache

#!/bin/sh
# Description: 安装memcached-1.4.36

SOFTWARE_DIR='/root/'

# ERROR Output
error_echo(){
    printf "33[31m $* 33[0m
"
}

# 安装memcached依赖包
memcached_package_install(){
    cd ${SOFTWARE_DIR} && tar zxf libevent-2.1.8-stable.tar.gz -C /usr/src/ && cd /usr/src/libevent-2.1.8-stable/ && ./configure --prefix=/usr/local/libevent && make && make install
    cd ${SOFTWARE_DIR} && tar zxf libmemcached-1.0.18.tar.gz -C /usr/src/ && cd /usr/src/libmemcached-1.0.18/ && ./configure --prefix=/usr/local/libmemcached --with-memcached && make && make install
}

# 创建memcached用户
memcached_user_create(){
    groupadd memcached
    useradd -s /sbin/nologin -M -g memcached memcached
    mkdir -p /data/memcached/
    chown -R memcached:memcached /data/memcached/
}

# 安装memcached
memcached_install(){
    cd ${SOFTWARE_DIR} && tar zxf memcached-1.4.36.tar.gz -C /usr/src/ && cd /usr/src/memcached-1.4.36/
    ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent --enable-64bit --disable-docs && make && make install
    ln -s /usr/local/memcached/bin/memcached /usr/bin/memcached
}

# 配置memcached
memcached_config(){
    cd ${SOFTWARE_DIR}
    cp -r memcached.init /etc/init.d/memcached && dos2unix /etc/init.d/memcached
    chmod a+x /etc/init.d/memcached
    chkconfig --add redis && chkconfig --level 2345 redis on
}

main(){
    memcached_package_install;
    memcached_install;
    memcached_config;
    if [ $? -eq 0 ]; then
        /etc/init.d/memcached start
		echo "memcached install successfully !!!"
    else
        error_echo "memcached install failed !!!"
    fi
}

main
#!/bin/sh
# chkconfig:            2345 10 90
# Description:          Start and Stop MemCached
# Provides:             memcached
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
NAME=memcache
PORT=11211
USER=memcached
MAXCONN=1024
CACHESIZE=512
OPTIONS="127.0.0.1"
MEMCACHED="/usr/local/memcached/bin/memcached"
PID="/data/memcached/memcache.pid"

start() {
if [ -e $PID -a ! -z $PID ];then
echo $NAME "is already running..."
exit 1
fi
echo -n $"Starting $NAME "
#$MEMCACHED -d -m $CACHESIZE -u $USER -l $OPTIONS -p $PORT -c $MAXCONN -P $PID
$MEMCACHED -d -m $CACHESIZE -u $USER -p $PORT -c $MAXCONN -P $PID
RETVAL=$?
[ $RETVAL -eq 0 ] && {
touch /var/lock/subsys/$NAME
success $"$NAME"
}
echo
return $RETVAL
}
stop(){
echo -n $"Stopping $NAME "
if [ ! -r $PID ] ; then
echo ""
echo $NAME "is not running..."
exit 1
fi
kill -QUIT `cat $PID`
success $"$NAME"
echo
[ $RETVAL = 0 ] && rm -f $PID /var/lock/subsys/$NAME
RETVAL=$?
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $NAME
RETVAL=$?
;;
restart)
sleep 0.3
$0 stop
sleep 1
$0 start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit $RETVAL
memcached_init
原文地址:https://www.cnblogs.com/yange/p/8079416.html