Ik heb blijkbaar een redis-server
instantie draaiend, want als ik probeer een nieuwe server te starten door redis-server
in 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-server
wanneer 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 @server
en 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 shutdown
is 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-services
die kunnen worden gebruikt om services te starten, stoppen en herstarten. homebrew-services
brew services
wordt automatisch geïnstalleerd wanneer het wordt uitgevoerd.
brew services start|run redis
brew services stop redis
brew services restart redis
Als u run
gebruikt, zal het niet starten bij het inloggen (noch opstarten). start
start de redis
-service en voegt deze toe bij inloggen en opstarten.
Antwoord 5, autoriteit 4%
Typ SHUTDOWN
in de CLI
of
Als u niet om uw gegevens in het geheugen geeft, kunt u ook SHUTDOWN NOSAVE
typen 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 aux
gebruiken 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 + grep
iets 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}')