Jak utrzymywać działanie serwera Redis

83

Używam redis do obsługi sesji w aplikacji nodejs. Mam zainstalowany serwer redis i działa, gdy uruchamiam redis-server, ale po zamknięciu terminala redis zatrzymuje się i nie działa. Jak utrzymać działający serwer redis po zamknięciu terminala?

Yalamber
źródło

Odpowiedzi:

73

Najłatwiejszym sposobem uruchomienia Redis jako demona jest edycja pliku konfiguracyjnego i zmiana następującego wiersza:

# 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

Pamiętaj, aby podczas uruchamiania podać plik konfiguracyjny w wierszu poleceń redis-server.

Przykład pliku konfiguracyjnego znajduje się w dystrybucji Redis.

Didier Spezia
źródło
Widziałem, jak uruchamiasz go jako demona, ale w takim razie jakiego polecenia używasz, aby uruchomić go jako demona?
Michael Fender,
To zależy od platformy i dystrybucji systemu operacyjnego.
Didier Spezia
następny wynik wyszukiwania w dół digitalocean.com/community/tutorials/ ...
Nick,
11
Jest kilka problemów z tą odpowiedzią: 1) nie mówi użytkownikowi, gdzie jest przechowywany plik konfiguracyjny. 2) Nie mówi, której platformy dotyczy ta odpowiedź (jeśli istnieją różne lokalizacje pliku konfiguracyjnego; przynajmniej podaj platformę, na której go zainstalowałeś, aby uzyskać ten wynik) 3) nie podaje nawet nazwy plik konfiguracyjny to.
George Stocker
Twoja odpowiedź dała mi pomysł, który rozwiązał mój problem. Miałem daemonizeopcję ustawioną na tak i próbowałem utrzymać swój kontener Docker przy życiu za pomocą programu, -D FOREGROUNDale nie działał i kontener był zamykany. Pozbyłem się tej opcji i zmieniłem daemonizeopcję z powrotem na nie i zadziałało, pojemnik jest utrzymywany przy życiu.
Stephane
194

A jeśli chciałbym szybkiej opcji uruchom: redis-server --daemonize yes.

lakesare
źródło
2
czy mogę zapytać, jaka jest różnica między tym a redis-server &?
Uduse
4
@Uduse Jeśli uruchomiłeś go &na końcu, po wyjściu z terminala proces serwera zostałby zabity. stackoverflow.com/a/15595391/6263317
Jon Deaton
1
@JonDeaton dzięki za wyjaśnienie, ale co z używaniem nohup redis-server &vs redis-server --daemonize? Chodzi mi o to, że wydaje się, że istnieje sposób na osiągnięcie tej samej funkcjonalności bez użycia --daemonizei ta opcja nie jest tak naprawdę potrzebna.
Uduse,
22

Jak wspomniał @DidierSpezia w swojej odpowiedzi,

Ustawiony daemonize yesw pliku konfiguracyjnym Redis. Ustawiony daemonize yesw pliku konfiguracyjnym Redis na /path/to/redis.confGenerally powinien tam być pod adresem /etc/.

I :

Następnie uruchom redis-server z plikiem conf jako argumentem:

./redis-server /etc/redis.conf

AKTUALIZACJA Możesz również bezpośrednio uruchomić redis z demonizeflagą

redis-server --daemonize yes
trex
źródło
-1

W Linuksie nie jestem pewien co do systemu Windows Użyj nohup, aby uruchomić redis w tle.Aby uruchomić redis w tle za pomocą nohup

  1. przejdź do katalogu redis src, w moim przypadku jest to / opt / redis-stabilny / src
  2. uruchom polecenienohup ./redis-server &
  3. teraz redis został uruchomiony w tle
  4. teraz naciśnij ctrl + c, aby wyjść, a dzienniki są drukowane do pliku nohup.out, możesz to samo dostosować do monitora
  5. użyj tail -f nohup.out, aby zobaczyć dzienniki redis
Mohammed Irfan Tirupattur
źródło
@domdambrogia używa Nohup, nie wyjdzie, będzie działać w tle. Sprawdź dzienniki w nohup.out
Mohammed Irfan Tirupattur
1
Masz rację, właśnie przeczytałem wbudowany kod ampersand bez reszty odpowiedzi. Usunę mój komentarz!
domdambrogia
@MohammedIrfanTirupattur: Ale to nie działa tak, jak demon wie! zostaje zabity, gdy terminal jest zamknięty
Aarish Ramesh,
@AarishRamesh nie, nie ma .. Będzie działać w tle, nie zapomnij użyć znaku ampersand, a także możesz sprawdzić logi z nohup.log w bieżącym katalogu
Mohammed Irfan Tirupattur