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?

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.


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.


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

-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

@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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.