Impossibile avviare Redis Datastore Server (Ubuntu 16.04.1 LTS)


10

ho appena installato Redis e non funziona affatto quando si tenta di avviare il servizio con il comando:

sudo service redis-server start

questo è il risultato di 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.

e questo è il risultato di 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.

Risposte:


14

Ho avuto lo stesso problema e non sono riuscito a trovare una soluzione funzionante da nessuna parte. Dopo alcune ricerche, la seguente correzione ha funzionato per me (Ubuntu 16.04)

In /etc/systemd/system/redis.service aggiungere quanto segue nella [Service]sezione.

Type=forking

1
Anche il mio, grazie! Come hai scoperto di aggiungere questo? Cosa fa effettivamente?
fpghost,

4

Apri il tuo servizio usando qualunque editor.

vim /etc/systemd/system/redis.service

Guarda la tua [Service]sezione alla ExecStartmia era:

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

Esegui questo comando per vedere quali errori si verificano. Il mio ha risposto con questo:

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

Quindi ho appena aggiornato quella riga in questo (dove era il mio file di configurazione effettivo)

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

Ecco dove redis quickstart lo posiziona per impostazione predefinita ... :)


2

Ho riscontrato lo stesso errore. Ma per me il motivo era completamente diverso: era dovuto a un errore di battitura nel mio redis.conffile. Correggendolo ed eseguendo il sudo systemctl restart redis-serverriavvio riavviato all'istante. È fuorviante che lo stesso errore sia stato gettato anche in questo caso.


2

Nel mio caso, la directory di registro ( /var/log/redis) che menziono nel /etc/redis/redis.conffile non era presente

Come trovo l'errore

Provare

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

Questo è lo stesso comando presente nel mio /etc/systemd/system/redis.servicefile

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

Soluzione

1) Creare la directory di registro

sudo mkdir -p /var/log/redis

2) Fornire l'accesso adeguato per creare e scrivere registri

sudo chown redis:redis /var/log/redis

Prova a riavviare il servizio

sudo service redis-server start 

o

sudo service redis start

1

Il file redis.service è mancante nella directory "/ etc / systemd / system /"

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

quindi copia e incolla queste righe

[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

salva e chiudi questo file

quindi modificare le autorizzazioni della directory

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

quindi avviare il server redis

$ sudo systemctl start redis

controlla se è in esecuzione ora

$ sudo systemctl status redis

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


0

Per favore controlla il tuo redis.log. Dovresti vedere qualcosa del genere:

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

Pertanto controlla i limiti del tuo sistema e forse i permessi dei file del tuo redisAOF ( /var/lib/redis/*). Per i limiti di sistema, ecco una buona guida .


0

Avevo bisogno sia di una cartella / var / lib / redis che di un utente e un gruppo redis.

Ho usato il consiglio https://askubuntu.com/a/981641/451682 di Kevin Upton per trovare i miei problemi: vim /etc/systemd/system/redis.servicemi ha portato a /usr/local/bin/redis-server /etc/redis/redis.confquale risposta con Can't chdir to '/var/lib/redis': No such file or directorycui ho creato sudo mkdir /var/lib/redis.

Quindi, però, dovevo anche creare l'utente e il gruppo redis e lanciarlo sulla directory / var / lib / redis, seguendo l' https : //askubuntu.com/a/918408/451682 di Rishik Rohan :

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

Grazie a voi due!


0

dopo aver effettuato tutte le conf provare questi comandi

sudo systemctl daemon-reload

sudo chown redis:redis /var/lib/redis

sudo chmod 770 /var/lib/redis

E dopo

sudo systemctl start redis

0

I passaggi per risolvere il problema: - + ============== + A. Imposta il limite di memoria in redis.conf nella riga numero 566

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B. imposta l'impostazione della memoria di overcommit del kernel Linux su 1:

$ sudo sysctl vm.overcommit_memory = 1

o /etc/sysctl.conf e cambiarlo in 1.

C. Riavviare il server redis ora.

$ systemctl restart redis

Controlla ora lo stato di Redis.

E se il problema persiste, vai a modificare e ripristinare il file di servizio.

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

Vedrai così: -

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

[Servizio] Utente = gruppo radice = radice ExecStart = / usr / local / bin / redis-server /etc/redis/redis.conf ExecStop = / usr / local / bin / redis-cli shutdown Restart = always

Tipo = Forking

[Installa] WantedBy = multi-user.target

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

per

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

Ora, avvia il servizio redis

$ systemctl start redis

Ora Redis inizierà senza dare alcun errore.

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

Test del redis: -

[root @ server] # redis-cli 127.0.0.1:6379> ping Utilizza il comando echo per eseguire l'eco di una determinata stringa: 127.0.0.1:6379> echo "Tecmint sta testando Redis" Puoi anche impostare un valore chiave usando il comando set in questo modo: 127.0.0.1:6379> set mykey "sta testando Redis" Ora visualizza il valore di mykey: 127.0.0.1:6379> get mykey "sta testando Redis" 127.0.0.1:6379> exit [root @ server] #

Ora redis è stato avviato correttamente e in esecuzione.

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

Grazie e saluti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.