1. 程式人生 > >redis的啟動指令碼

redis的啟動指令碼

#!/bin/sh
#user  wyyue
#date 2018-12-02
#version redis:4.0.11 V1
. /etc/init.d/functions
port=6380
ipaddr=10.0.0.98
server=/usr/local/redis6380/redis-server
conf=/usr/local/redis6380/redis.conf
custom=/usr/local/redis-4.0.11/src/redis-cli
pidfile=/var/run/redis_6380.pid

public(){
  while [ -x /proc/$pid ]
      do
         echo "redis is stopping..."
         sleep 1
      done
      action "redis stopped" /bin/true
}

start_redis(){
 if [ -f $pidfile ];then
   action "redis is already running" /bin/true
 else
  $server $conf
  if [ $? -eq 0 ];then
    action "redis start success" /bin/true
  else
    action "redis start fail" /bin/false
  fi
fi
}

stop_redis(){
  if [ ! -f $pidfile ];then
    action "redis is already stoped" /bin/true
  else
    pid=$(cat $pidfile)
    passwd=`grep 'requirepass' /usr/local/redis6380/redis.conf|awk '{print $2}'|sed 's#"##g'`
    if [ -z $passwd ];then
      $custom -h $ipaddr -p $port shutdown
      public
    else 
      $custom -h $ipaddr -p $port -a $passwd shutdown
      public
    fi 
  fi
}

status_redis(){
  if [ -f $pidfile ];then
    action "redis is running " /bin/true
  else
    action "redis is stopped" /bin/false 
  fi
}

restart_redis(){
  stop_redis
  sleep 3
  start_redis
}

case "$1" in 
  start)
    start_redis
  ;;
  stop)
    stop_redis
  ;;
  restart)
    restart_redis
  ;;
  status)
    status_redis
  ;;
  *)
   echo "USAGE:$0{start|stop|status|restart}"
  ;;
esac