Несколько сервер Memcached/etc/init.d запускает сценарий, который работает?

Сделайте, чтобы они записали критические пароли, изолировали их в конверте и сохранили их в сейфе, сейфе или некотором другом местоположении, где физическая безопасность высока. Вы хотите удостовериться, что только кто-то как генеральный директор или некоторый другой защищенный человек мог получить доступ к этому и удостовериться, что они могут только получить доступ к нему путь, который оставит вещественные доказательства.

6
задан 24 December 2010 в 05:12
3 ответа

Для добавления сервиса к chkconfig, Вам обычно будут нужны несколько специальных комментариев ниже хижины сценария оболочки:

#!/bin/sh
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached

После добавления строк к/etc/init.d/memcached можно затем выйти

chkconfig --add memcached

Существуют, конечно, дополнительные уровни выполнения, в которых процесс может начать так проверять, что Вы вышли бы

chkconfig --list | grep "memcached"

Общий уровень выполнения для memcached был бы

chkconfig --level 345 memcached on
5
ответ дан 3 December 2019 в 00:30

Так как сценарий работает, я предполагаю, что он не связан от/etc/rc.d, таким образом, он не выполняется при запуске. Предположение, что сценарий запуска называют/etc/init.d/memcached, который необходимо выполнить

chkconfig --add memcached

добавить его к списку сценариев, которые будут выполнены при запуске.

0
ответ дан 3 December 2019 в 00:30

Вот сценарий, который я использую для запуска нескольких экземпляров memcached. Ключевым моментом является то, что я использую ассоциативный массив для запуска всего или только одного конкретного экземпляра:

#! /usr/local/bash4/bin/bash
#
# chkconfig: - 55 45
# description:  The memcached daemon is a network memory cache service.
# processname: memcached
# config: /etc/sysconfig/memcached

# Standard LSB functions
#. /lib/lsb/init-functions

# Source function library.
. /etc/init.d/functions

if [ -f /etc/sysconfig/memcached ];then 
    . /etc/sysconfig/memcached
fi

# Check that networking is up.
. /etc/sysconfig/network

if [ "$NETWORKING" = "no" ]
then
    exit 0
fi

typeset -A PIDS
typeset -A MEMORYS
typeset -A FACTORS
typeset -A INSTANCES

PORTS="11216 11217"
USER=memcached
basedir="/usr/local/memcached"
MAXCONN=1024
OPTIONS=""
INSTANCES=([11216]="session" [11217]="userdata")
PIDS=([11216]="$basedir/var/run/sohaphimdetails.pid" [11217]="$basedir/var/run/sohamuzik-top.pid")
MEMORYS=([11216]="1024" [11217]="2048")
FACTORS=([11216]="1.25" [11217]="1.125")

RETVAL=0
prog="memcached"
cmd="/usr/local/memcached/bin/memcached"
user="memcached"
ip="192.168.6.66"
peer="192.168.6.28"
max_conn=2048
max_memory=512
threads=8

function start()
{
    port="$1"
    if [ `ps -ef | grep "$cmd" | grep -c $port` -ge 1 ]; then
        action $"Starting the memcached server on port '$port'... " /bin/false
    else
        if [ ! -f $basedir/var/log/${INSTANCES[$port]}.log ]; then 
            touch $basedir/var/log/${INSTANCES[$port]}.log 
            /bin/chown memcached:memcached $basedir/var/log/${INSTANCES[$port]}.log
        fi
        $cmd -d -u $user -l $ip -c $max_conn -t $threads -m ${MEMORYS[$port]} -p $port -P $basedir/var/run/${INSTANCES[$port]}.pid -f ${FACTORS[$port]} -x $peer -X `expr $port '*' 10` -vv > $basedir/var/log/${INSTANCES[$port]}.log 2>&1
        action $"Starting the memcached server on port '$port'... " /bin/true
    fi
}

function stop()
{
    port="$1"
    if [ `ps -ef | grep "$cmd" | grep -c $port` -eq 0 ]; then
        action $"Stopping the memcached server on port '$port'... " /bin/false
    else
        kill -TERM `ps -ef | grep "$cmd" | grep $port | grep -v grep | awk '{ print $2 }'`
        action $"Stopping the memcached server on port '$port'... " /bin/true 
    fi
}

case "$1" in
    start) 
        if [ -n "$2" ]; then
            start $2
        else
            for port in $PORTS; do
                start $port
            done
        fi
        ;;
    stop)   
        if [ -n "$2" ]; then
            port="$2"
            stop $port
        else
            killproc $prog
        fi
        ;;
    restart)
        if [ -n "$2" ]; then
            stop $2
            start $2
        else
            for port in $PORTS; do
                stop $port
                start $port
            done
        fi
        ;;
    *)
        printf 'Usage: %s {start|stop|restart} <port>\n' "$prog"
        exit 1
        ;;
esac

PS: Я использовал repcached для репликации.

1
ответ дан 3 December 2019 в 00:30

Теги

Похожие вопросы