Uruchomiliśmy serwer redis na wielu instancjach AWS EC2 Ubuntu (14.04.4 LTS) bez żadnych problemów. Uruchomiłem serwer testowy, aby wypróbować aktualizację do Ubuntu 16.04.1 LTS, a teraz redis nie będzie działać.
Jeśli spróbuję uruchomić redis ręcznie, otrzymuję:
~$ sudo service redis-server restart
Job for redis-server.service failed because the control process exited with error code. See "systemctl status redis-server.service" and "journalctl -xe" for details.
Informacje o błędzie:
~$ systemctl status redis-server.service
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: inactive (dead) (Result: exit-code) since Wed 2016-10-19 19:26:06 UTC; 25min ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 3730 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=1/FAILURE)
Process: 3724 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Control process exited, code=exited status=1
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Unit entered failed state.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Failed with result 'exit-code'.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Stopped Advanced key-value store.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: redis-server.service: Start request repeated too quickly.
Oct 19 19:26:06 ip-x-y-z-w systemd[1]: Failed to start Advanced key-value store.
Próbowałem następujące:
- zrestartował serwer
- uruchom nasz skrypt wdrażania, który obejmuje ponowne uruchomienie redis
- służy
sudo apt-get
do odinstalowywania i ponownej instalacji serwera redis - wykonałem instalację dwa razy, raz akceptując nowy
/etc/redis/redis.conf
plik z pakietu i raz zachowując nasz oryginalny plik
Jakieś sugestie?
Odpowiedzi:
Zainstalowałem redis używając
apt-get install redis-server
Problem dla mnie: samouczki, które znalazłem np. druga odpowiedź na to pytanie zakłada, że pliki binarne redis znajdują się w
/usr/local/bin
.W mojej instalacji są one zlokalizowane,
/usr/bin
więc poprawka zmienia się,/etc/systemd/system/redis.service
aby to odzwierciedlić.W tym momencie mogę na początku
/usr/bin/redis-server /etc/redis/redis.conf
ręcznie i z powodzeniem uruchomićsudo systemctl start redis
.Więc co musisz zrobić, aby redis działał 16.04:
apt-get install redis-server
, nie pobieraj tar, a następnie wykonaj i zainstaluj.sudo vi /etc/systemd/system/redis.service
sudo systemctl start redis
sudo /usr/bin/redis-server /etc/redis/redis.conf
.Ważną częścią, którą musiałem edytować, było upewnienie się
linie nie wskazywały
usr/local/bin/foo
- trzeba usunąć/local
źródło
Miałem ten sam problem, ale przyczyna była inna.
Użyłem redis do testowania na maszynie wirtualnej z klientem dhcp.
Konfiguracja
/etc/redis/redis.conf
wskazywała na zły (stary) lokalny adres IP i dlatego nie mogła powiązać usługi z nowym przypisanym adresem IP z DHCP.Oto dziennik takiego problemu:
źródło
Może spróbuj tego, oto działająca konfiguracja, aby
/lib/systemd/system/redis.service
sprawdzić, czy to może Ci pomóc.Następnie sprawdź plik dziennika określony w konfiguracji,
/etc/redis/redis.conf
aby upewnić się, że masz odpowiednie uprawnienia.źródło
Jeśli używasz Ubuntu, trzeba mieć
supervised systemd
w/etc/redis/redis.conf
.źródło
Otwórz terminal i uruchom polecenie ifconfig, a następnie otrzymasz adres IP, taki jak 192.168.0.109, a następnie edytuj konfigurację, uruchamiając polecenie sudo nano /etc/redis/redis.conf tutaj nano jest edytorem. Możesz użyć dowolnego innego edytora, a następnie wyszukać powiązać i podać adres IP jak
powiązanie 127.0.0.1 192.168.0.109 tutaj mój adres IP to 192.168.0.109, następnie zrestartuj serwer za pomocą tego polecenia sudo systemctl uruchom ponownie redis. usługa sprawdź status serwera sudo systemctl status redis, a zobaczysz, że jest aktywny
źródło