Redis 서버를 계속 실행하는 방법


82

nodejs 앱에서 세션 지원을 위해 redis를 사용하고 있습니다. redis 서버를 설치했고 redis-server를 실행하면 작동하지만 터미널을 닫으면 redis가 중지되고 작동하지 않습니다. 터미널을 닫은 후에도 Redis 서버를 계속 실행하려면 어떻게해야합니까?

답변:


73

Redis를 데몬으로 시작하는 가장 쉬운 방법은 구성 파일을 편집하고 다음 줄을 변경하는 것입니다.

# 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

실행할 때 redis-server 명령 줄에 구성 파일을 제공해야합니다.

구성 파일의 예는 Redis 배포에 제공됩니다.


이것이 데몬으로 실행하는 방법이라는 것을 보았지만 데몬으로 실행하기 위해 어떤 명령을 사용합니까?
Michael Fender

플랫폼 및 OS 배포에 따라 다릅니다.
Didier Spezia 2014

아래 다음 검색 결과 digitalocean.com/community/tutorials/...

11
이 답변에는 몇 가지 문제가 있습니다. 1) 구성 파일이 저장된 위치를 사용자에게 알려주지 않습니다. 2)이 답변이 적용되는 플랫폼을 말하지 않습니다 (구성 파일의 위치가 다른 경우, 적어도이 결과를 얻으려면 설치 한 플랫폼을 제공하십시오) .3) 이름이 무엇인지조차 말하지 않습니다. 구성 파일은입니다.
조지 스토커

귀하의 답변은 나에게 아이디어를 주었고 내 문제를 해결했습니다. 나는했다 daemonizeyes로 설정 옵션을하고 살아 그 도커 컨테이너를 유지하기 위해 노력했다 -D FOREGROUND그러나 그것은 작동하지 않는 용기는 종료되었다. 이 옵션을 제거하고 daemonize옵션을 다시 no로 변경 했는데 작동했고 컨테이너가 살아 있습니다.
Stephane

189

그리고 빠른 옵션을 원하면 다음을 실행하십시오 redis-server --daemonize yes..


2
이것과의 차이점이 무엇인지 물어봐도 redis-server &될까요?
Uduse

4
@Uduse &마지막에 실행 하면 터미널을 종료하면 서버 프로세스가 종료됩니다. stackoverflow.com/a/15595391/6263317
Jon Deaton

1
@JonDeaton 설명에 감사하지만 nohup redis-server &vs 사용 은 redis-server --daemonize어떻습니까? 내 말은, 사용하지 않고 동일한 기능을 얻을 수있는 방법이 --daemonize있고 그 옵션은 실제로 필요하지 않은 것 같습니다.
Uduse

21

@DidierSpezia가 그의 답변에서 언급했듯이,

daemonize yesRedis conf 파일에서 설정 합니다. 세트daemonize yes 에서 레디 스의 conf 파일에 /path/to/redis.conf일반적으로는에가 있어야한다 /etc/.

그리고 :

그런 다음 conf 파일을 인수로 사용하여 redis-server를 트리거합니다.

./redis-server /etc/redis.conf

업데이트demonize 플래그를 사용 하여 redis를 직접 실행할 수도 있습니다.

redis-server --daemonize yes

-1

Linux에서는 Windows에 대해 잘 모르겠습니다 .nohup을 사용하여 백그라운드에서 redis를 실행하십시오 .nohup을 사용하여 백그라운드에서 redis를 실행하려면

  1. redis src 디렉토리로 이동하십시오. 제 경우에는 / opt / redis-stable / src입니다.
  2. 통신을 실행nohup ./redis-server &
  3. 이제 redis가 백그라운드에서 시작되었습니다.
  4. 이제 ctrl + c를 눌러 종료하고 로그가 nohup.out 파일에 인쇄됩니다. 동일한 방법으로 모니터링 할 수 있습니다.
  5. redis의 로그를 보려면 tail -f nohup.out을 사용하십시오.

Nohup을 사용하는 @domdambrogia는 종료되지 않으며 백그라운드에서 실행됩니다. 로그를 nohup.out은 확인
모하메드 이르판 Tirupattur에게

1
당신이 맞습니다. 나머지 대답없이 앰퍼샌드 인라인 코드를 읽었습니다. 내 댓글을 삭제하겠습니다!
domdambrogia 19.01.20

@MohammedIrfanTirupattur : 그러나 이것은 데몬이 알고있는대로 실행하지 않습니다! 터미널이 닫히면 죽습니다
Aarish Ramesh

@AarishRamesh 아니 .. 백그라운드에서 실행될 것입니다. 앰퍼샌드를 사용하는 것을 잊지 마세요. 또한 현재 디렉토리의 nohup.log에서 로그를 확인할 수 있습니다
Mohammed Irfan Tirupattur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.