Hoe kan ik redis-server stoppen?

Ik heb blijkbaar een redis-serverinstantie draaiend, want als ik probeer een nieuwe server te starten door redis-serverin te voeren, krijg ik het volgende te zien:

Opening port: bind: Address already in use

Ik weet niet hoe ik deze server kan stoppen en een nieuwe kan starten.

Is er een commando dat ik kan toevoegen aan redis-serverwanneer ik in de CLI typ?

Mijn besturingssysteem is Ubuntu 10.04.


Antwoord 1, autoriteit 100%

Maak verbinding met de node-instantie en gebruik de opdracht shutdownof als u ubuntu gebruikt, kunt u proberen opnieuw op te starten redis-server via init.d:

/etc/init.d/redis-server restart

of stop/start het:

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

Op Mac

redis-cli shutdown

Antwoord 2, autoriteit 31%

Een schonere, betrouwbaardere manier is om naar redis-cli te gaan en vervolgens SHUTDOWN

te typen

Typ in redis-cli help @serveren je ziet dit onderaan de lijst:

SHUTDOWN – samenvatting: sla de dataset synchroon op schijf op en dan
sluit de server sinds: 0.07

En als u een redis-server-instantie in een terminal heeft, ziet u dit:

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...

Antwoord 3, autoriteit 22%

redis-cli shutdownis het meest effectief. Het geaccepteerde antwoord werkt niet voor mij (OSX Lion). Bedankt, @JesseBuesking.


Antwoord 4, autoriteit 7%

Voor OSX heb ik de volgende aliassen gemaakt voor het starten en stoppen van redis(geïnstalleerd met Homebrew):

alias redstart='redis-server /usr/local/etc/redis/6379.conf'
alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'

Dit heeft uitstekend gewerkt voor de lokale ontwikkeling!

Homebrew heeft nu homebrew-servicesdie kunnen worden gebruikt om services te starten, stoppen en herstarten. homebrew-services

brew serviceswordt automatisch geïnstalleerd wanneer het wordt uitgevoerd.

brew services start|run redis 
brew services stop redis
brew services restart redis

Als u rungebruikt, zal het niet starten bij het inloggen (noch opstarten). startstart de redis-service en voegt deze toe bij inloggen en opstarten.


Antwoord 5, autoriteit 4%

Typ SHUTDOWNin de CLI

of

Als u niet om uw gegevens in het geheugen geeft, kunt u ook SHUTDOWN NOSAVEtypen om de server geforceerd af te sluiten.


Antwoord 6, autoriteit 3%

stop het redis-servertype in terminal met rootgebruiker

sudo service redis-server stop

het bericht wordt weergegeven nadat de redis-server is gestopt

Stopping redis-server: redis-server.

als u het type redis-server wilt starten

sudo service redis-server start

als u het servertype opnieuw wilt starten

sudo service redis-server restart

Antwoord 7, autoriteit 2%

Probeer killall redis-server. Je kunt ook ps auxgebruiken om de naam en pid van je server te vinden, en deze dan doden met kill -9 here_pid_number.


Antwoord 8, autoriteit 2%

Optie 1: ga naar de installatiemap redis en navigeer naar src, in mijn geval :

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

waarbij 6379 de standaardpoort is.

Optie 2: zoek het redis-proces en kill

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

En start dan het doden:

kill -9 22292
kill -9 22299

Ik gebruik Centos 6.7 , x86_64

hoop dat het helpt


Antwoord 9

Een andere manier zou kunnen zijn:

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

Werkt op *NIX & OSX


Antwoord 10

MacOSX – Het werkte 🙂

Stap 1: Zoek de eerder draaiende Redis-server

ps auxx | grep redis-server

Stap 2: Schakel het specifieke proces uit door PID (Proces-ID) – Redis Sever te vinden

kill -9 PID

Antwoord 11

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

Antwoord 12

Meestal doet dit probleem zich voor nadat ik mijn computer op een onregelmatige manier heb afgesloten (of laat draaien). Ik geloof dat de poort open blijft staan, terwijl het proces stopt maar gebonden blijft aan de vorige poort.

9/10 keer kan de oplossing zijn:

$ ps aux | grep redis
-> MyUser 2976  0.0  0.0  2459704    320   ??  S    Wed01PM   0:29.94 redis-server *:6379
$ kill 2976
$ redis-server

Goed om te gaan.


Antwoord 13

Als je weet op welke poort het zou draaien (standaard zou het 6379 zijn), kun je het onderstaande commando gebruiken om de pid van het proces dat die poort gebruikt op te halen en dan het kill-commando voor dezelfde pid uitvoeren.

p>

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

het bovenstaande commando geeft je pid.

dood <pid>;

Hierdoor zou uw server worden afgesloten.


Antwoord 14

Een andere manier zou kunnen zijn:

brew services stop redis

Antwoord 15

als je make install(bijv. ubuntu) hebt gedaan tijdens het installeren van redis, dan kun je het volgende doen:

redis-cli shutdown

zoals aangegeven door @yojimbo87🙂


Antwoord 16

In mijn geval was het:

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

Als u wilt weten wat uw servicenaam is, kunt u het volgende uitvoeren:

sudo updatedb
locate redis

En het zal je alle Redis-bestanden op je systeem laten zien.


Antwoord 17

Het volgende werkte voor mij op MAC

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

Antwoord 18

Als u redis in een docker-container uitvoert, zal geen van de huidige antwoorden helpen. U moet de redis-container stoppen. Anders blijft het redis-proces respawnen.

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

Antwoord 19

Als u weet op welke poort (standaard: 6379) wordt uw Redis-server uitgevoerd, kunt u met optie 1 gaan of u kunt uw Redis-proces controleren en u kunt doden met Optie 2

optie 1:
Kill-proces op poort:

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

optie 2:
Zoek de eerder draaiende redis-server:

ps auxx | grep redis-server

Dood het specifieke proces door PID (Process-ID) te vinden – Redis Sever

kill -9 PID

Start nu uw Redis-server met

redis-server /path/to/redis.conf 

20

De onderstaande opdrachten werkt voor mij op Ubuntu Server

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

21

Ik zou willen voorstellen om Redis-Server uit te schakelen, die Auto Start voorkomt terwijl de computer opnieuw wordt opgestart en zeer handig om docker zoals gereedschappen enz. te gebruiken.

Stap 1: stop de redis-server

sudo service redis-server stop

Stap 2: Schakel de redis-server

uit

sudo systemctl disable redis-server

als je redis nodig hebt, kun je het starten als:

sudo service redis-server start

Antwoord 22

Op MacOSX,

Dit is wat voor mij werkte

/etc/init.d/redis restart
/etc/init.d/redis stop
/etc/init.d/redis start

Antwoord 23

Eén ding om te controleren of de redis-commando’s niet voor u werken, is of uw redis-server.pid daadwerkelijk wordt gemaakt. U specificeert de locatie waar dit bestand zich bevindt

/etc/systemd/system/redis.service 

en het zou een sectie moeten hebben die er ongeveer zo uitziet:

[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

Controleer de locatie en permissies van de PIDFile directory (in mijn geval ‘/run/redis’). Ik probeerde de service opnieuw te starten die was aangemeld als deploy, maar de directorymachtigingen werden vermeld als

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

Als je een opfriscursus nodig hebt over linux-machtigingen, kijk hier dan eens naar. Maar het probleem was dat ik de herstart uitvoerde als mijn deploy-gebruiker, waarvan de bovenstaande machtigingen r-x zijn, waardoor mijn gebruiker niet naar de PIDFile-directory kan schrijven.

Toen ik me dat realiseerde, logde ik in met root, herstartte ik het herstartcommando op de redis (service redis restart) en alles werkte. Dat was een hoofdpijn, maar hopelijk bespaart dit iemand wat tijd.


Antwoord 24

Redis heeft configuratieparameter pidfile(bijv. /etc/redis.conf – controleer redis broncode), bijvoorbeeld:

# If a pid file is specified, Redis writes it where specified at startup
# and removes it at exit.
#
# When the server runs non daemonized, no pid file is created if none is
# specified in the configuration. When the server is daemonized, the pid file
# is used even if not specified, defaulting to "/var/run/redis.pid".
#
pidfile /var/run/redis.pid

Als het is ingesteld of kan worden ingesteld, kan in plaats van te zoeken naar proces-ID (pid) met behulp van ps + grepiets als dit worden gebruikt:

kill $(cat /var/run/redis.pid)

Indien nodig kan men redis stop scriptzo maken (aangepast standaard redis 5.0 init.d-script in redis-broncode):

PIDFILE=/var/run/redis.pid
if [ ! -f $PIDFILE ]
then
    echo "$PIDFILE does not exist, process is not running"
else
    PID=$(cat $PIDFILE)
    echo "Stopping ..."
    kill $PID
    while [ -x /proc/${PID} ]
    do
        echo "Waiting for Redis to shutdown ..."
        sleep 1
    done
    echo "Redis stopped"
fi

Antwoord 25

Redis-server stoppen

sudo service redis-server stop

en controleer de status ervan met

sudo service redis-server status

Antwoord 26

Als Redis via snap is geïnstalleerd:

sudo snap stop redis.server

Antwoord 27

U kunt deze code proberen:

sudo kill -9 $(ps aux | grep 'redis' | awk '{print $2}')

Other episodes