Как я могу остановить редис-сервер? - PullRequest
278 голосов
/ 02 августа 2011

У меня явно работает экземпляр redis-server, потому что когда я пытаюсь запустить новый сервер, набрав redis-server, меня приветствует следующее:

Opening port: bind: Address already in use

Я не могу понятькак остановить этот сервер и запустить новый.

Есть ли какая-либо команда, которую я могу добавить к redis-server при вводе в CLI?

Моя ОС - Ubuntu 10.04.

Ответы [ 22 ]

5 голосов
/ 16 января 2014

Если вы знаете, на каком порту он будет работать (по умолчанию это будет 6379), вы можете использовать команду ниже, чтобы получить pid процесса, использующего этот порт, а затем выполнить команду kill для того же pid.

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

указанная выше команда выдаст pid.

kill <pid>;

Это отключит ваш сервер.

4 голосов
/ 17 ноября 2016

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
4 голосов
/ 12 января 2017

Обычно эта проблема возникает после того, как я выключаю компьютер (или оставляю работающим) нерегулярно ... Я считаю, что порт застревает открытым, в то время как процесс останавливается, но продолжает привязываться к предыдущему порту.

9/10 раз исправление может быть:

$ ps aux | grep redis

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

$ kill 2976

$ redis-server

Хорошо идти.

3 голосов
/ 03 февраля 2016

В моем случае это было:

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

Чтобы узнать, как называется ваша служба, вы можете запустить:

sudo updatedb
locate redis

И он покажет вам все файлы Redis в вашей системе.

2 голосов
/ 10 октября 2018

Следующее сработало у меня на MAC

 ps aux | grep 'redis-server' | awk '{print $2}' | xargs sudo kill -9
2 голосов
/ 25 марта 2018

Другой способ может быть:

brew services stop redis
1 голос
/ 02 августа 2011

Не знаю специально для redis, но для серверов в целом:

Какая ОС или дистрибутив?Часто будет команда stop или /etc/init.d / ..., которая сможет найти существующий pid в файле pid.

Вы можете посмотреть, какой процесс уже связан спорт с sudo netstat -nlpt (параметры linux; другие разновидности netstat могут отличаться) и сигнализируют об остановке.Я бы не использовал kill -9 на работающем сервере, если на самом деле нет другого сигнала или метода для его выключения.

1 голос
/ 01 октября 2016

Команды ниже работают для меня на Ubuntu Server

$ service /etc/init.d/redis_6379 stop
$ service /etc/init.d/redis_6379 start
$ service /etc/init.d/redis_6379 restart
0 голосов
/ 23 мая 2019

Если вы знаете, на каком порту (по умолчанию: 6379) запущен ваш сервер Redis, вы можете перейти с , опция 1 , или вы можете проверить процесс Redis, и вы можете убить с помощью , опция 2 * 1004. *

опция 1:
Процесс уничтожения на порту:

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

вариант 2:
Найдите ранее работающий сервер Redis:

 ps auxx | grep redis-server

Убить определенный процесс, найдя PID (ID процесса) - Redis Sever

kill -9 PID

Теперь запустите ваш сервер Redis с

redis-server /path/to/redis.conf 
0 голосов
/ 19 октября 2018

Если вы запускаете redis в док-контейнере, ни один из настоящих ответов не поможет. Вы должны остановить контейнер Redis. В противном случае процесс повторного запуска будет возобновляться.

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

$ docker stop e1c008ab04a2
e1c008ab04a2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...