it-swarm.com.de

Wie kann ich den Redis-Server stoppen?

Ich habe anscheinend eine redis-server-Instanz ausgeführt, denn wenn ich versuche, einen neuen Server durch Eingabe von redis-server zu starten, werde ich mit dem folgenden begrüßt:

Opening port: bind: Address already in use

Ich kann nicht herausfinden, wie ich diesen Server anhalten und einen neuen starten kann.

Gibt es einen Befehl, den ich an redis-server anfügen kann, wenn ich die CLI eingebe?

Mein Betriebssystem ist Ubuntu 10.04.

254
Qcom

Verbinden Sie sich entweder mit der Knoteninstanz und verwenden Sie den Befehl shutdown , oder wenn Sie Ubuntu verwenden, können Sie versuchen, den Redis-Server über init.d neu zu starten:

/etc/init.d/redis-server restart

oder stoppen/starten:

/etc/init.d/redis-server stop
/etc/init.d/redis-server start

Auf dem Mac

redis-cli shutdown
405
yojimbo87

Eine sauberere, zuverlässigere Methode besteht darin, in redis-cli zu gehen und dann shutdown einzugeben.

Geben Sie in redis-cli help @server ein. Sie werden dies am Ende der Liste sehen:

SHUTDOWN - Zusammenfassung: Speichern Sie das Dataset synchron auf der Festplatte und anschließend Fahren Sie den Server seit: 0.07 herunter

Wenn Sie eine Redis-Server-Instanz in einem Terminal ausführen, wird Folgendes angezeigt:

User requested shutdown...
[6716] 02 Aug 15:48:44 * Saving the final RDB snapshot before exiting.
[6716] 02 Aug 15:48:44 * DB saved on disk
[6716] 02 Aug 15:48:44 # Redis is now ready to exit, bye bye...
184
Kevin McTigue

redis-cli shutdown ist am effektivsten. Die akzeptierte Antwort funktioniert bei mir nicht (OSX Lion). Danke, @JesseBuesking.

128
SimplGy

Für osx habe ich die folgenden Aliase zum Starten und Stoppen von Redis erstellt (Redis mit Homebrew installiert):

alias redstart='redis-server /usr/local/etc/redis/6379.conf'

alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'

Dies hat für die lokale Entwicklung sehr gut funktioniert.

25
Ray Hunter

Geben Sie SHUTDOWN in die CLI ein

oder

wenn Sie sich nicht für Ihre Daten im Speicher interessieren, können Sie auch SHUTDOWN NOSAVE eingeben, um den Server herunterzufahren.

23
user1651082

Versuchen Sie killall redis-server. Sie können auch ps aux verwenden, um den Namen und die PID Ihres Servers zu finden, und dann mit kill -9 here_pid_number beenden.

15
ciembor

Option 1: Wechseln Sie in das Installationsverzeichnis von redis und navigieren Sie zu src. In meinem Fall: 

/opt/redis3/src/redis-cli -p 6379 shutdown

dabei ist 6379 der Standardport.

Option 2: Finde Redis-Prozess und töte

ps aux | grep redis-server

t6b3fg   22292  0.0  0.0 106360  1588 pts/0    S+   01:19   0:00 /bin/sh /sbin/service redis start
t6b3fg   22299  0.0  0.0  11340  1200 pts/0    S+   01:19   0:00 /bin/sh /etc/init.d/redis start

Und dann initiiere kill:

kill -9 22292

kill -9 22299

Ich verwende Centos 6.7, x86_64

ich hoffe es hilft

11
App Work

Ein anderer Weg könnte sein:

ps -ef | grep -i 'redis-server'
kill -9 PID owned by redis

Funktioniert auf * NIX & OSX

10
smace

stoppen Sie den Redis-Servertyp im Terminal mit root-Benutzer

Sudo service redis-server stop

die Meldung wird angezeigt, nachdem der Redis-Server gestoppt wurde

Stopping redis-server: redis-server.

wenn Sie den Redis-Server-Typ starten möchten

Sudo service redis-server start

wenn Sie den Servertyp neu starten möchten

Sudo service redis-server restart
7
denny

MacOSX - es hat funktioniert :)

Schritt 1: Finden Sie den zuvor ausgeführten Redis-Server

ps auxx | grep redis-server

Schritt 2: Beenden Sie den spezifischen Prozess, indem Sie die PID (Prozess-ID) - Redis Sever suchen

kill -9 PID

Wenn Sie wissen, auf welchem ​​Port er ausgeführt wird (standardmäßig 6379), können Sie mit dem Befehl unten die PID des Prozesses abrufen, der diesen Port verwendet, und dann den Befehl kill für dieselbe PID ausführen.

Sudo lsof -i : <port> | awk '{print $2}'

der obige Befehl gibt Ihnen PID.

töte <pid>;

Dies würde Ihren Server herunterfahren. 

5
cptjack

Normalerweise tritt dieses Problem auf, nachdem ich meinen Computer auf unregelmäßige Weise heruntergefahren habe (oder läuft). Ich glaube, der Port bleibt offen, während der Prozess stoppt, aber weiterhin an den vorherigen Port gebunden ist.

9/10 mal kann der Fix sein:

$ ps aux | grep redis

-> MyUser 2976  0.0  0.0  2459704    320   ??  S    Wed01PM   0:29.94 redis-server *:6379

$ kill 2976

$ redis-server

Gut zu gehen. 

4

In meinem Fall war es:

/etc/init.d/redismaster stop
/etc/init.d/redismaster start

Um herauszufinden, wie Ihr Dienstname ist, können Sie Folgendes ausführen:

Sudo updatedb
locate redis

Es werden Ihnen alle Redis-Dateien in Ihrem System angezeigt.

3
joan16v

systemd, ubuntu 16.04:

$ Sudo systemctl is-active redis-server
active

$ Sudo systemctl is-enabled redis-server
enabled

$ Sudo systemctl disable redis-server
Synchronizing state of redis-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable redis-server
Removed /etc/systemd/system/redis.service.

$ Sudo systemctl stop redis-server
3
Adobe

Ein anderer Weg könnte sein:

brew services stop redis
2
Ihor Pavlyk

Folgendes arbeitete für mich an MAC

 ps aux | grep 'redis-server' | awk '{print $2}' | xargs Sudo kill -9
2
Mahesh Hegde

Ich weiß es nicht speziell für Redis, aber für Server im Allgemeinen:

Welches Betriebssystem oder welche Distribution? Oft gibt es einen Stop- oder /etc/init.d/... -Befehl, mit dem die vorhandene PID in einer PID-Datei nachgeschlagen werden kann.

Mit Sudo netstat -nlpt können Sie nachsehen, welcher Prozess bereits an den Port gebunden ist (Linux-Optionen; andere Netstat-Varianten variieren) und signalisieren, dass der Prozess angehalten wird. Ich würde nicht kill -9 auf einem laufenden Server verwenden, es sei denn, es gibt wirklich kein anderes Signal oder eine andere Methode, um es herunterzufahren.

1
ysth

Die folgenden Befehle funktionieren für mich auf Ubuntu Server

$ service /etc/init.d/redis_6379 stop
$ service /etc/init.d/redis_6379 start
$ service /etc/init.d/redis_6379 restart
1
efkan

Unter MacOSX 

Das hat bei mir funktioniert

/etc/init.d/redis restart

/etc/init.d/redis stop

/etc/init.d/redis start
0
tsuz

Wenn Sie Redis in einem Docker-Container ausführen, hilft keine der vorliegenden Antworten. Sie müssen den Redis-Container anhalten. Andernfalls wird der Redis-Prozess fortgesetzt.

$ docker ps
CONTAINER ID        IMAGE                    PORTS                             
e1c008ab04a2        bitnami/redis:4.0.8-r0   0.0.0.0:6379->6379/tcp

$ docker stop e1c008ab04a2
e1c008ab04a2
0
Wladek Surala

Wenn Sie wissen, auf welchem ​​Port (Standard: 6379) Ihr Redis-Server ausgeführt wird, können Sie mit Option 1 oder Sie können Ihren Redis-Prozess überprüfen und Sie können mit Option 2 beenden.

Option 1:
Prozess am Port beenden:

check     : Sudo lsof -t -i:6379
kill      : Sudo kill `Sudo lsof -t -i:6379`

Option 2:
Suchen Sie den zuvor ausgeführten Redis-Server:

 ps auxx | grep redis-server

Beenden Sie den spezifischen Prozess, indem Sie PID (Process ID) - Redis Sever finden

kill -9 PID

Starten Sie nun Ihren Redis-Server mit

redis-server /path/to/redis.conf 
0

Zu prüfen, ob die redis-Befehle für Sie nicht funktionieren, ist, ob Ihre redis-server.pid tatsächlich erstellt wird. Sie geben den Speicherort der Datei an 

/etc/systemd/system/redis.service 

und es sollte einen Abschnitt haben, der ungefähr so ​​aussieht: 

[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/run/redis/redis-server.pid
TimeoutStopSec=0
Restart=always

Überprüfen Sie den Speicherort und die Berechtigungen des PIDFile-Verzeichnisses (in meinem Fall '/ run/redis'). Ich habe versucht, den als deploy angemeldeten Dienst neu zu starten, die Verzeichnisberechtigungen wurden jedoch als aufgelistet 

drwxrwsr-x  2 redis    redis      40 Jul 20 17:37 redis

Wenn Sie eine Auffrischung der Linux-Berechtigungen benötigen, check this out . Das Problem war jedoch, dass ich den Neustart ausgeführt habe, da mein Implementierungsbenutzer die Berechtigung r-x hat und meinem Benutzer nicht erlaubt, in das PIDFile-Verzeichnis zu schreiben.

Nachdem ich das erkannt hatte, loggte ich mich mit root ein, wiederholte den Befehl restart auf dem Redis (service redis restart) und alles funktionierte. Das war Kopfschmerzen, aber hoffentlich spart dies jemandem etwas Zeit.

0