Sentinel daemon do init.d no Alpine linux não parando

0

Instalei um novo linux alpino e configurei o Redis usando o comando

apk add redis

Agora, o instalador não nos forneceu um /etc/sentinel.conf , então criei manualmente um, copiando o /etc/redis.conf .

port 26379
dir /var/lib/redis
bind 192.168.56.122
sentinel announce-ip 192.168.56.122
sentinel announce-port 26379
sentinel monitor mymaster 192.168.56.121 6379 2
sentinel auth-pass mymaster mypassword
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 10000
daemonize yes
logfile /var/log/redis/sentinel.log
pidfile /var/run/redis/sentinel.pid

Agora para executar o sentinel como um daemon Eu crio o seguinte script /etc/init.d/sentinel copiando o /etc/init.d/redis .

Se eu executar o comando

/etc/init.d/sentinel start

então é iniciado. Mas quando tento pará-lo usando

/etc/init.d/sentinel stop

o sistema informa que o serviço foi interrompido, mas se vejo o processo, ainda o vejo em execução. Existe algo que estou fazendo errado?

#!/sbin/openrc-run

SENTINEL_CONF=${SENTINEL_CONF:-/etc/sentinel.conf}
SENTINEL_USER=${SENTINEL_USER:-root}
SENTINEL_GROUP=${SENTINEL_GROUP:-root}

name="Sentinel server"
command=/usr/bin/redis-sentinel
command_args=${SENTINEL_CONF}

depend() {
    use net localmount logger
    after keepalived firewall
}

# get global pidfile, logfile, and dir from config file
get_config() {
    if [ ! -f "${SENTINEL_CONF}" ] ; then
        eerror "You need a ${SENTINEL_CONF} file to run redis"
        return 1;
    fi

    pidfile=$(awk '$1 == "pidfile" { print $2 }' "$SENTINEL_CONF")
    logfile=$(awk '$1 == "logfile" { print $2 }' "$SENTINEL_CONF")
    dir=$(awk '$1 == "dir" { print $2 }' "$SENTINEL_CONF")
    : ${pidfile:=/var/run/redis/sentinel.pid}
    : ${logfile:=/var/log/redis/sentinel.log}
    : ${dir:=/var/lib/redis}
}

start() {
    get_config || return 1
    checkpath -d -o ${SENTINEL_USER}:${SENTINEL_GROUP} ${pidfile%/*} \
        ${logfile%/*} ${dir}

    ebegin "Starting $name"
    start-stop-daemon --start \
        --chdir "${dir}" \
        --user ${SENTINEL_USER}:${SENTINEL_GROUP} \
        --pidfile "${pidfile}" \
        --exec "${command}" \
        -- ${command_args}
    eend $? 
}

stop() {
    get_config
    ebegin "Stopping $name"
    start-stop-daemon --stop --retry 30 --pidfile "${pidfile}"
    eend $?
}

Atualizar

Eu também copiei o /etc/conf.d/redis e criei uma cópia chamada /etc/conf.d/sentinel

# Redis user.
SENTINEL_USER="root"

# Redis group.
SENTINEL_GROUP="root"

# Redis configuration file.
SENTINEL_CONF="/etc/sentinel.conf"
    
por Soham Dasgupta 13.05.2018 / 07:04

0 respostas