Redis Datastore Server başlatılamadı (Ubuntu 16.04.1 LTS)


10

i sadece redis yüklü ve komut ile hizmet başlatmaya çalışırken hiç çalışmıyor:

sudo service redis-server start

bunun sonucu journalctl -xe:

Subject: Unit redis-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit redis-server.service has finished shutting down.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

ve bu şunların sonucudur systemctl status redis-server.service:

 redis-server.service - Redis Datastore Server
 Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
 Active: inactive (dead) (Result: resources) since Kam 2017-03-02 13:22:46 WIB; 5min ago
 Process: 12120 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)

Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.
Mar 02 13:22:46 aaaaa-notebook systemd[1]: redis-server.service: Unit entered failed state.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Failed with result 'resources'.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Mar 02 13:22:46 aaa-notebook systemd[1]: Stopped Redis Datastore Server.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

Yanıtlar:


15

Aynı sorunu yaşadım ve hiçbir yerde çalışan bir çözüm bulamadım. Biraz arama yaptıktan sonra, aşağıdaki düzeltme benim için çalıştı (Ubuntu 16.04)

Gelen /etc/systemd/system/redis.service altında aşağıdaki ekleyin [Service]bölümünde.

Type=forking

1
Benim de teşekkürler! Bunu eklemeyi nasıl keşfettiniz? Aslında ne yapar?
fpghost

4

Hangi düzenleyiciyi kullanarak hizmetinizi açın.

vim /etc/systemd/system/redis.service

Benim [Service]bölümünüze bakın ExecStart:

ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf

Hangi hataların oluştuğunu görmek için bu komutu çalıştırın. Mine buna cevap verdi:

 Fatal error, can't open config file '/etc/redis/redis.conf'

Bu yüzden bu satırı güncelledim (gerçek yapılandırma dosyamın olduğu yer)

ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf

Burada redis quickstart varsayılan olarak yerleştirir ... :)


2

Aynı hatayla karşılaştım. Ama benim için sebep tamamen farklıydı: Bunun sebebi dosyamdaki bir yazım hatasıydı redis.conf. Bunu düzeltme ve sudo systemctl restart redis-serveryeniden başlatma işlemi anında yapılır. Bu durum için de aynı hatanın atıldığı yanıltıcıdır.


2

Benim durumumda, dosyada /var/log/redisbahsettiğim günlük dizini ( ) /etc/redis/redis.confyoktu

Hatayı nasıl bulurum

Deneyin

/usr/local/bin/redis-server /etc/redis/redis.conf

Bu benim aynı komutu var /etc/systemd/system/redis.servicedosyada

ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf

Çözüm

1) Günlük dizini oluşturun

sudo mkdir -p /var/log/redis

2) Günlük oluşturmak ve yazmak için uygun erişim verin

sudo chown redis:redis /var/log/redis

Hizmeti yeniden başlatmayı deneyin

sudo service redis-server start 

veya

sudo service redis start

1

"/ etc / systemd / system /" dizininde redis.service dosyası eksik

sudo nano /etc/systemd/system/redis.service

sonra bu satırları kopyalayıp yapıştırın

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

bu dosyayı kaydet ve kapat

sonra dizin izinlerini değiştirin

$ sudo adduser --system --group --no-create-home redis
$ sudo chown redis:redis /var/lib/redis
$ sudo chmod 770 /var/lib/redis

sonraki redis sunucusunu başlat

$ sudo systemctl start redis

şimdi çalışıp çalışmadığını kontrol et

$ sudo systemctl durum redis

REFERANS: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04


0

Lütfen kontrol edin redis.log. Bunun gibi bir şey görmelisin:

41393:M 07 Jun 17:02:19.034 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
41393:M 07 Jun 17:02:19.034 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
41393:M 07 Jun 17:02:19.034 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
41393:M 07 Jun 17:02:19.034 # Can't open the append-only file: Read-only file system

Bu nedenle, sistem sınırlarınızı ve redisAOF'nizin ( /var/lib/redis/*) dosya izinlerini kontrol edin . Sistem sınırları için iyi bir kılavuz .


0

Hem / var / lib / redis klasörüne hem de redis kullanıcısına ve grubuna ihtiyacım vardı.

Sorunlarımı bulmak için Kevin Upton'ın https://askubuntu.com/a/981641/451682 tavsiyesini kullandım: vim /etc/systemd/system/redis.servicebeni, /usr/local/bin/redis-server /etc/redis/redis.confhangi ile Can't chdir to '/var/lib/redis': No such file or directoryoluşturduğum yanıtı verdim sudo mkdir /var/lib/redis.

Sonra da, redis kullanıcı ve grup oluşturmak ve Rishik Rohan https://askubuntu.com/a/918408/451682 aşağıdaki / var / lib / redis dir üzerinde plop oluşturmak gerekiyordu :

sudo adduser --system --group --no-create-home redis
sudo chown redis:redis /var/lib/redis
sudo chmod 770 /var/lib/redis

İkinize teşekkürler!


0

tüm conf yaptıktan sonra bu komutları deneyin

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

Ve sonra

sudo systemctl start redis

0

Bu sorunu çözmek için adımlar: - + ============= + A. 566 sayı satırında redis.conf bellek sınırını ayarlayın

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B.Linux çekirdeği aşırı yüklenen bellek ayarını 1 olarak ayarlayın:

$ sudo sysctl vm.overcommit_memory = 1

veya /etc/sysctl.conf yazın ve 1 olarak değiştirin.

C. redis sunucusunu şimdi yeniden başlatın.

$ systemctl yeniden başlatma redis

Lütfen şimdi yeniden durumunu kontrol edin.

Hala sorun devam ederse, Git ve düzenle ve yeniden hizmet dosyası.

========= vi /etc/systemd/system/redis.service

Böyle göreceksiniz: -

[Unit] Description = Bellek İçi Veri Deposunu Sonra Yeniden Reddet = network.target

[Hizmet] Kullanıcı = kök Grup = kök ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli kapatma Restart = always

= Çatallanan yazın

[Yükle] WantedBy = multi-user.target

Değiştirmek ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf

için

ExecStart = / usr / local / bin / redis-server /etc/redis.conf

Şimdi, redis hizmetini başlatın

$ systemctl başlangıç ​​redis

Şimdi Redis herhangi bir hata vermeden başlayacaktır.

+ ============== +

Yeniden testin yapılması: -

[root @ server] # redis-cli 127.0.0.1:6379> ping Belirli bir dizeyi yankılamak için echo komutunu kullanın: 127.0.0.1:6379> echo "Tecmint Redis'i test ediyor" set komutunu kullanarak bir anahtar değeri de ayarlayabilirsiniz bunun gibi: 127.0.0.1:6379> mykey ayarla "Redis'i test ediyor" Şimdi mykey değerini görüntüleyin: 127.0.0.1:6379> get mykey "Redis'i test ediyor" 127.0.0.1:6379> çıkış [root @ server] #

Şimdi redis başarılı bir şekilde başladı ve çalışıyor.

+ ================== +

Teşekkürler & Saygılar

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.