04-redis

1. pidFile实现

#!/bin/sh
#Configurations injected by install_server below....

EXEC=/Users/list/soft/redis6/run/bin/redis-server
CLIEXEC=/Users/list/soft/redis6/run/bin/redis-cli
PIDFILE=/Users/list/soft/redis6/run/redis_6379.pid
CONF="/Users/list/soft/redis6/run/conf/6379.conf"
REDISPORT="6379"

while [ true ]; do
    echo "\033[31m------------------------------------------------------------- \033[0m"
    echo "\033[33mstart, stop, restart, status, exit: \033[0m"
    read opt
    case "$opt" in
    start)
        if [ -f $PIDFILE ]; then
            echo "\033[33m$PIDFILE exists, process is already running or crashed\033[0m"
        else
            echo "\033[33mStarting Redis server...\033[0m"
            $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]; then
            echo "\033[33m$PIDFILE does not exist, process is not running\033[0m"
        else
            PID=$(cat $PIDFILE)
            echo "\033[33mStopping ...\033[0m"
            $CLIEXEC -p $REDISPORT shutdown
            echo "\033[33mRedis stopped\033[0m"
        fi
        ;;
    status)
        if [ ! -f $PIDFILE ]; then
            echo '\033[33mRedis is not running\033[0m'
        else
            PID=$(cat $PIDFILE)
            echo "\033[33mRedis is running ($PID)\033[0m"
        fi
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    exit)
        echo "\033[33mbye bye~~\033[0m"
        break
        ;;
    *)
        echo "\033[33mPlease input start, stop, restart or status\033[0m"
        ;;
    esac
done