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: