Cómo mantener el servidor Redis en funcionamiento


82

Estoy usando redis para el soporte de sesiones en la aplicación nodejs. He instalado el servidor redis y funciona cuando ejecuto redis-server, pero cuando cierro la terminal, redis se detiene y no funciona. ¿Cómo mantengo el servidor Redis funcionando después de cerrar la terminal?

Respuestas:


73

La forma más sencilla de iniciar Redis como demonio es editar el archivo de configuración y cambiar la siguiente línea:

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

Asegúrese de proporcionar el archivo de configuración en la línea de comandos de redis-server cuando lo inicie.

Se proporciona un ejemplo de archivo de configuración en la distribución de Redis.


Vi que así es como se ejecuta como daemon, pero ¿qué comando usa para ejecutarlo como daemon?
Michael Fender

Depende de la plataforma y la distribución del sistema operativo.
Didier Spezia

siguiente resultado de búsqueda en digitalocean.com/community/tutorials/…
Nick

11
Hay algunos problemas con esta respuesta: 1) no le dice al usuario dónde está almacenado el archivo de configuración. 2) No dice a qué plataforma se aplica esta respuesta (si hay diferentes ubicaciones para el archivo de configuración; al menos proporcione en qué plataforma lo instaló para obtener este resultado) 3) ni siquiera dice cuál es el nombre de el archivo de configuración es.
George Stocker

Tu respuesta me dio una idea, que resolvió mi problema. Tenía la daemonizeopción configurada en sí y estaba tratando de mantener vivo su contenedor Docker con el, -D FOREGROUNDpero no estaba funcionando y el contenedor estaba saliendo. Me deshice de esta opción y cambié la daemonizeopción de nuevo a no, y funcionó, el contenedor se mantiene vivo.
Stephane

189

Y, si se desea una opción rápida, ejecute: redis-server --daemonize yes.


2
¿Puedo preguntar cuál es la diferencia entre esto y redis-server &?
Uduse

4
@Uduse Si lo ejecutó con &al final, cuando saliera de la terminal, el proceso del servidor se eliminaría. stackoverflow.com/a/15595391/6263317
Jon Deaton

1
@JonDeaton gracias por la explicación, pero ¿qué pasa con el uso de nohup redis-server &vs redis-server --daemonize? Quiero decir, parece que hay alguna forma de lograr la misma funcionalidad sin usar --daemonizey esa opción no es realmente necesaria.
Uduse

21

Como lo menciona @DidierSpezia en su respuesta,

Establecer daemonize yesen el archivo de configuración de Redis. Establecer daemonize yesen el archivo de configuración de Redis en /path/to/redis.confGeneralmente debería estar allí en /etc/.

Y:

Luego active redis-server con el archivo conf como argumento:

./redis-server /etc/redis.conf

ACTUALIZAR También puede ejecutar directamente el redis con demonizebandera

redis-server --daemonize yes

-1

En Linux, no estoy seguro acerca de Windows Use nohup para ejecutar redis en segundo plano. Para ejecutar redis en segundo plano usando nohup

  1. ir al directorio redis src, en mi caso es / opt / redis-stable / src
  2. ejecutar el comandonohup ./redis-server &
  3. ahora redis comenzó en segundo plano
  4. ahora presione ctrl + c para salir y los registros se imprimen en el archivo nohup.out, puede seguir lo mismo para monitorear
  5. use tail -f nohup.out para ver los registros de redis

@domdambrogia usando Nohup no se cerrará, se ejecutará en segundo plano. Consulte nohup.out para ver los registros
Mohammed Irfan Tirupattur

1
Tienes razón, acabo de leer el código comercial en línea sin el resto de tu respuesta. ¡Eliminaré mi comentario!
domdambrogia

@MohammedIrfanTirupattur: ¡Pero esto no lo ejecuta como sabe el demonio! muere cuando la terminal está cerrada
Aarish Ramesh

@AarishRamesh no, no ... Se ejecutará en segundo plano, no olvides usar ampersand y también puedes verificar los registros de nohup.log en el directorio actual
Mohammed Irfan Tirupattur
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.