Как я могу остановить redis-сервер?
у меня, видимо, есть redis-server экземпляр работает, потому что когда я пытаюсь запустить новый сервер, введя redis-server, Я встретил следующее:
Opening port: bind: Address already in use
Я не могу понять, как остановить этот сервер и начать новую.
есть ли команда, я могу добавить redis-server когда я набираю в CLI?
моя ОС Ubuntu 10.04.
19 ответов:
либо подключиться к экземпляру узла и использовать остановка команда или если вы находитесь на ubuntu, вы можете попробовать перезапустить сервер redis через init.д:
/etc/init.d/redis-server restartили остановить / запустить его:
/etc/init.d/redis-server stop /etc/init.d/redis-server startНа Mac
redis-cli shutdown
более чистый, более надежный способ-войти в redis-cli, а затем ввести
shutdownв redis-cli введите
help @serverи вы увидите это в нижней части списка:SHUTDOWN-summary: синхронно сохранить набор данных на диск, а затем выключите сервер с момента: 0.07
и если у вас есть экземпляр redis-server, работающий в терминале, вы увидите следующее:
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...
redis-cli shutdownнаиболее эффективна. Принятый ответ не работает для меня (OSX Lion). Спасибо, @JesseBuesking.
для osx я создал следующие псевдонимы для запуска и остановки redis (redis установлен с homebrew):
alias redstart='redis-server /usr/local/etc/redis/6379.conf' alias redstop='redis-cli -h 127.0.0.1 -p 6379 shutdown'это отлично сработало для меня для местного развития.
тип
SHUTDOWNв CLIили
Если вы не заботитесь о своих данных в памяти, вы также можете ввести
SHUTDOWN NOSAVEпринудительное завершение работы сервера.
попробовать
killall redis-server. Вы также можете использоватьps auxнайти имя и PID вашего сервера, а затем убить его сkill -9 here_pid_number.
Вариант 1: Перейдите в каталог установки redis и перейдите к
srcв моем случае :/opt/redis3/src/redis-cli -p 6379 shutdownгде 6379-порт по умолчанию.
Вариант 2: Найти процесс redis и убить
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а затем начать убивать:
kill -9 22292 kill -9 22299Я использую Centos 6.7, x86_64
надеюсь, что это помогает
другой способ может быть:
ps -ef | grep -i 'redis-server' kill -9 PID owned by redisработает на *NIX & OSX
MacOSX-Это Сработало:)
Шаг 1: Найдите ранее запущенный сервер Redis
ps auxx | grep redis-serverШаг 2: убейте конкретный процесс, найдя PID (идентификатор процесса) - Redis Sever
kill -9 PID
остановите тип сервера redis в терминале с корневым пользователем
sudo service redis-server stopсообщение будет отображаться после остановки Redis-сервера
Stopping redis-server: redis-server.если вы хотите запустить redis-сервер типа
sudo service redis-server startесли вы хотите перезапустить сервер типа
sudo service redis-server restart
Если вы знаете, на каком порту он будет запущен (по умолчанию это будет 6379), вы можете использовать команду ниже, чтобы получить pid процесса, используя этот порт, а затем выполнить команду kill для того же pid.
sudo lsof -i : <port> | awk '{print }'приведенная выше команда даст вам pid.
убить
<pid>;это приведет к отключению вашего сервера.
в моем случае это было:
/etc/init.d/redismaster stop /etc/init.d/redismaster startчтобы узнать, как называется ваша служба, вы можете запустить:
sudo updatedb locate redisи он покажет вам все файлы Redis в вашей системе.
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
обычно эта проблема возникает после того, как я выключил свой компьютер ( или оставил работу ) нерегулярным способом.. Я считаю, что порт застревает открытым, в то время как процесс останавливается, но продолжает быть привязан к предыдущему порту.
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хорошо идти.
Я не знаю конкретно для redis, но для серверов в целом:
какая ОС или дистрибутив? Часто будет остановка или/etc / init.д./.. команда, которая сможет найти существующий pid в файле pid.
вы можете посмотреть, какой процесс уже привязан к порту с
sudo netstat -nlpt(параметры linux; другие вкусы netstat будут отличаться) и сигнализировать об остановке. Я бы не использоватьkill -9на работающем сервере, если там действительно нет другого сигнала или способ, чтобы закрыть его.
команды ниже работает для меня Ubuntu Server
$ service /etc/init.d/redis_6379 stop $ service /etc/init.d/redis_6379 start $ service /etc/init.d/redis_6379 restart
На MacOSX,
Это то, что сработало для меня
/etc/init.d/redis restart /etc/init.d/redis stop /etc/init.d/redis start
одна вещь, чтобы проверить, если команды redis не работают для вас, если ваш redis-сервер.пид на самом деле создается. Вы указываете расположение этого файла в
/etc/systemd/system/redis.serviceи он должен иметь раздел, который выглядит примерно так:
[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проверьте расположение и разрешения каталога PIDFile (в моем случае, '/run/redis'). Я пытался перезапустить службу, вошедшую в систему как развертывание, но разрешения каталога были перечислены как
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redisЕсли вам нужно обновить разрешения linux,зацените. Но проблема заключалась в том, что я выполнял перезапуск как мой пользователь развертывания, который имеет разрешения выше r-x, не позволяя моему пользователю писать в каталог PIDFile.
как только я понял, что я вошел в систему с помощью root, повторите команду перезапуска на redis (
service redis restart) и все работало. Это была головная боль, но, надеюсь, это сэкономит кому-то немного времени.
Comments