mac cli redis rhel6

cli - redis version



Redis Daemon no crea un archivo PID (2)

El problema fue que el usuario redis no tenía permiso para crear el archivo pid (o directorio en el que se encontraba). Fijar:

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

Luego maté y reinicié Redis y, efectivamente, había redis.pid

Se supone que el script de inicio de Redis crea un archivo pid al inicio, pero he confirmado todas las configuraciones que puedo encontrar, y nunca se crea ningún archivo pid.

Instalé redis por:

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

En mi archivo de configuración (/etc/redis.conf) lo verifiqué para asegurarme de que estos estuvieran 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 }

Estas son las configuraciones que vienen por defecto con la instalación. ¿Alguna idea de por qué no se crea un archivo pid? Necesito usarlo para Monit. (El sistema es RHEL 6.4 por cierto)


En CentOs 7 necesito agregar 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 luego reinicia el servicio:

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

Referencia:

CentOs 7: Archivo sistemad y PID