La Redis secuencia de comandos de inicio se supone que para crear un archivo pid en el inicio, pero he confirmado que todos los ajustes que pude encontrar, y no del archivo pid es que jamás se haya creado.

He instalado redis por:

$ yum install redis
$ chkconfig redis on
$ service redis start

En mi archivo de configuración (/etc/redis.conf) he comprobado para asegurarse de que estos fueron habilitados:

daemonize yes
pidfile /var/run/redis/redis.pid

Y en el script de inicio/etc/init.d/redis) hay:

exec="/usr/sbin/$name"
pidfile="/var/run/redis/redis.pid"
REDIS_CONFIG="/etc/redis.conf"

[ -e /etc/sysconfig/redis ] && . /etc/sysconfig/redis

lockfile=/var/lock/subsys/redis

start() {
    [ -f $REDIS_CONFIG ] || exit 6
    [ -x $exec ] || exit 5
    echo -n $"Starting $name: "
    daemon --user ${REDIS_USER-redis} "$exec $REDIS_CONFIG"
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $name: "
    killproc -p $pidfile $name
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

Estos son los valores que vienen por defecto con la instalación. Alguna idea de por qué no hay pid archivo es creado? Necesito usarlo para Monit.
(El sistema es RHEL 6.4 por cierto)

  • ¿Redis iniciar correctamente? De usuario que se utiliza para lanzar redis? ¿Tiene suficientes derechos para escribir el archivo PID? ¿Tienes algo en redis de registro? Usted está utilizando el shell scripts proporcionados por rhel. Intenta acaba de lanzar redis sin esta secuencia de comandos para ver si funciona sin el script?
  • Sí, Redis se inicia y se ejecuta correctamente, y se está ejecutando bajo el UID: redis. No parecen tener permiso para crear un archivo de allí, sin embargo. Voy a tratar de poner esto en marcha
InformationsquelleAutor jsmartt | 2014-08-26

4 Comentarios

  1. 11

    Problema era que el usuario redis de no tener permiso para crear el identificador de archivo (o directorio fue en). Revisión:

    sudo mkdir /var/run/redis
    sudo chown redis /var/run/redis
    

    Luego me mató y se reinicia redis y, por supuesto, no fue redis.pid

    • Mi pidfile ruta fue establecida como pidfile="/var/run/redis.pid" para redis no se pudo crear el archivo debido a que los permisos en /var/run/, esta solución me ayudó descubierto mi caso, gracias
    • no funciona en mi ubuntu 18.04
  2. 9

    En CentOs 7, necesito añadir al archivo:

    $ vi /usr/lib/systemd/system/redis.service
    

    La siguiente línea:

    ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
    

    Y, a continuación, reinicie el servicio:

    $ sudo systemctl daemon-reload
    $ sudo systemctl restart redis.service
    

    Referencia:

    CentOs 7: Systemd & Archivo PID

    • esto es exactamente lo que se necesita!
    • Trabajó en Fedora. Gracias!
    • Esto funciona usando Ubuntu 18.04, sin embargo el archivo redis.service reside en la ruta /etc/systemd/system/.
    • esto funciona para mí también usando Ubuntu 18.04.
    • esto funciona en Ubuntu 16.04 Demasiado
  3. 9

    En mi Ubuntu 18.04, me estaba poniendo el mismo error.

    Error reportado por redis (en /var/log/redis/redis-server.log):

    # Creating Server TCP listening socket ::1:6379: bind: Cannot assign requested address

    Esto es porque yo lo he desactivado el protocolo IPv6 en este host y redis-server paquete (versión 5:4.0.9-1) para Ubuntu viene con:

    bind 127.0.0.1 ::1

    Edición /etc/redis/redis.conf y comentar la línea, o la eliminación de la ::1 dirección resuelve el problema. Ejemplo:

    # bind 127.0.0.1 ::1

  4. 2

    Aquí a partir de 2018

    Antes de empezar, estoy en Ubuntu 18.04.Escribí esto que si alguien viene aquí
    mediante la búsqueda en el mismo error.

    En mi caso el error es el mismo pero el problema es tan diferente. Ninguna de las soluciones que aquí se propone trabajado.

    Así que comprueba los registros si se existe y buscó hay nada útil. Encontrado en;

    cat /var/log/redis/redis-server.log

    Buscado registros y encontró que el problema es que otro de los servicios es escucha mismo puerto.

    2963:C 21 Sep 11:07:33.007 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    2963:C 21 Sep 11:07:33.008 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=2963, just started
    2963:C 21 Sep 11:07:33.008 # Configuration loaded
    2974:M 21 Sep 11:07:33.009 # Creating Server TCP listening socket 127.0.0.1:6379: bind: Address already in use 
    

    He comprobado que está escuchando.

    netstat anp | grep 6379
    

    Encontrado.

    tcp6       0      0 :::6379                 :::*                    LISTEN      3036/docker-proxy   
    

    Era ventana acoplable imagen de redis que instalado con otra herramienta

    [email protected]:~# docker ps
    CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                   PORTS                    NAMES
    a6a94d401700        redis:3.2                   "docker-entrypoint.s…"   20 hours ago        Up 3 hours               0.0.0.0:6379->6379/tcp   incubatorsuperset_redis_1
    

    Así que me detuve ventana acoplable imagen

    [email protected]:~# docker stop incubatorsuperset_redis_1
    

    Y redis-servidor inicia sin problema.

    [email protected]:~# systemctl start redis-server
    [email protected]:~# systemctl status redis-server
    ● redis-server.service - Advanced key-value store
       Active: active (running) since Fri 2018-09-21 11:10:34 +03; 1min 49s ago
      Process: 3671 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
    

Dejar respuesta

Please enter your comment!
Please enter your name here