Redis sunucusunun çalışır durumda kalması


83

Nodejs uygulamasında oturum desteği için redis kullanıyorum. Redis sunucusunu kurdum ve redis sunucusunu çalıştırdığımda çalışıyor, ancak terminali kapattığımda redis duruyor ve çalışmıyor. Redis sunucusunu terminali kapattıktan sonra nasıl çalışır durumda tutabilirim?

Yanıtlar:


73

Redis'i bir arka plan programı olarak başlatmanın en kolay yolu, yapılandırma dosyasını düzenlemek ve aşağıdaki satırı değiştirmektir:

# 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

Yapılandırma dosyasını, başlattığınızda redis-server komut satırında sağladığınızdan emin olun.

Redis dağıtımında bir yapılandırma dosyası örneği verilmiştir.


Bunun bir arka plan programı olarak nasıl çalıştırıldığını gördüm, ama sonra onu bir arka plan programı olarak çalıştırmak için hangi komutu kullanıyorsunuz?
Michael Fender

Platforma ve işletim sistemi dağıtımına bağlıdır.
Didier Spezia

sonraki arama sonucu down digitalocean.com/community/tutorials/…
Nick

11
Bu yanıtla ilgili birkaç sorun var: 1) kullanıcıya yapılandırma dosyasının nerede depolandığını söylemiyor. 2) Bu cevabın hangi platform için geçerli olduğunu söylemiyor (yapılandırma dosyası için farklı konumlar varsa; en azından bu sonucu almak için hangi platforma kurduğunuzu belirtin) 3) adının ne olduğunu bile söylemiyor yapılandırma dosyası.
George Stocker

Cevabınız bana sorunumu çözen bir fikir verdi. Ben daemonizeevet ayarlı seçeneği ve canlı olarak Docker konteyneri tutmaya çalışıyordu -D FOREGROUNDama çalışmıyor ve konteyner çıkarken edildi. Bu seçenekten kurtuldum ve daemonizeseçeneği tekrar hayır olarak değiştirdim ve işe yaradı, konteyner canlı tutuldu.
Stephane

194

Hızlı bir seçenek gibi olur eğer, çalıştırın: redis-server --daemonize yes.


2
bununla arasındaki farkın ne olduğunu sorabilir miyim redis-server &?
Uduse

4
@Uduse Sonunda ile çalıştırırsanız &, terminalden çıktığınızda sunucu işlemi durdurulur . stackoverflow.com/a/15595391/6263317
Jon Deaton

1
@JonDeaton açıklama için teşekkürler, peki ya nohup redis-server &vs kullanmaya ne dersiniz redis-server --daemonize? Demek istediğim, aynı işlevselliği kullanmadan elde etmenin bir yolu var gibi görünüyor --daemonizeve bu seçenek gerçekten gerekli değil.
Uduse

22

@DidierSpezia'nın cevabında belirtildiği gibi,

daemonize yesRedis yapılandırma dosyasında ayarlayın . daemonize yesRedis conf dosyasında ayarlayın /path/to/redis.confGenellikle şurada olmalıdır /etc/.

Ve :

Ardından, bağımsız değişken olarak conf dosyasıyla redis sunucusunu tetikleyin:

./redis-server /etc/redis.conf

GÜNCELLEME Redis'i doğrudan demonizebayrakla da çalıştırabilirsiniz.

redis-server --daemonize yes

-1

Linux'ta windows hakkında emin değilim Redis'i arka planda çalıştırmak için nohup kullanın. Nohup kullanarak redis'i arka planda çalıştırmak için

  1. redis src dizinine gidin, benim durumumda / opt / redis-stable / src
  2. komutayı çalıştırnohup ./redis-server &
  3. şimdi redis arka planda başladı
  4. şimdi çıkmak için ctrl + c tuşlarına basın ve günlükler nohup.out dosyasına yazdırılır, aynısını izlemek için kuyruklayabilirsiniz
  5. redis'in günlüklerini görmek için tail -f nohup.out komutunu kullanın

@domdambrogia Nohup kullanarak çıkmayacak, arka planda çalışıyor olacak. Kayıtlar için nohup.out'u kontrol edin
Mohammed Irfan Tirupattur

1
Haklısınız, cevabınızın geri kalanı olmadan sadece ve işaretini satır içi kodu okudum. Yorumumu kaldıracağım!
domdambrogia

@MohammedIrfanTirupattur: Ama bu, arka plan programının bildiği gibi onu çalıştırmaz! terminal kapandığında öldürülür
Aarish Ramesh

@AarishRamesh hayır değil .. Arka planda çalışıyor olacak ve işaretini kullanmayı unutmayın ve ayrıca mevcut dizindeki nohup.log'dan günlükleri kontrol edebilirsiniz
Mohammed Irfan Tirupattur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.