CentOSでredisを起動するshellスクリプト

2543 ワード

このスクリプトで管理する前に、次のカーネルパラメータを構成する必要があります.そうしないと、Redisスクリプトはredisを再起動または停止するとエラーが発生し、サービスを停止する前に自動的にディスクにデータを同期できません.
 
  
# vi /etc/sysctl.conf

vm.overcommit_memory = 1


次に適用が有効になります.

   # sysctl -p 
 

次に、サービスを追加し、POSTを開始します.
 
  
# chmod 755 /etc/init.d/redis
# chkconfig �Cadd redis
# chkconfig �Clevel 345 redis on
# chkconfig �Clist redis

スクリプトのソース:

#!/bin/bash
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig:  - 80 12
# description: Redis is a persistent key-value database
# processname: redis-server
# config:   /usr/local/redis/etc/redis.conf
# pidfile:   /usr/local/redis/var/redis.pid

source /etc/init.d/functions

BIN="/usr/local/redis/bin"
CONFIG="/usr/local/redis/etc/redis.conf"
PIDFILE="/usr/local/redis/var/redis.pid"


### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0
prog="redis-server"
desc="Redis Server"

start() {

    if [ -e $PIDFILE ];then
       echo "$desc already running...."
       exit 1
    fi

    echo -n $"Starting $desc: "
    daemon $BIN/$prog $CONFIG

    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
    return $RETVAL
}

stop() {
    echo -n $"Stop $desc: "
    killproc $prog
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE
    return $RETVAL
}

restart() {
  stop
  start
}

case "$1" in
 start)
    start
    ;;
 stop)
    stop
    ;;
 restart)
    restart
    ;;
 condrestart)
    [ -e /var/lock/subsys/$prog ] && restart
    RETVAL=$?
    ;;
 status)
    status $prog
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|condrestart|status}"
    RETVAL=1
esac

exit $RETVAL

注意:スクリプトのredisの起動ファイル、プロファイル、pidファイルの格納場所を設定した場所に応じて変更してください.ファイルを保存するときはunixで実行可能なモードに注意してください.そうしないとlinuxで実行するときにエラーが表示されます./bin/bash^M:bad interpreter:No such file or directory