Najwyraźniej mam redis-server
uruchomioną instancję, ponieważ kiedy próbuję uruchomić nowy serwer, wchodząc redis-server
, pojawia się następujący komunikat:
Opening port: bind: Address already in use
Nie mogę wymyślić, jak zatrzymać ten serwer i uruchomić nowy.
Czy jest jakieś polecenie, do którego mogę dołączyć, redis-server
gdy piszę w interfejsie CLI?
Mój system operacyjny to Ubuntu 10.04.
redis-cli ping
. Działający serwer Redis odpowie za pomocąPONG
.Odpowiedzi:
Połącz się z instancją węzła i użyj polecenia shutdown lub jeśli jesteś na Ubuntu, możesz spróbować zrestartować serwer Redis poprzez init.d:
lub zatrzymaj / uruchom:
Na Macu
źródło
launchctl
zrobić, aw innych systemachsystemctl
lubservice
.service redis-server stop
iservice redis-server start
po zainstalowaniu goapt-get install redis-server
.Czystszym, bardziej niezawodnym sposobem jest przejście do redis-cli, a następnie pisanie
shutdown
W redis-cli wpisz,
help @server
a zobaczysz to u dołu listy:A jeśli masz instancję serwera redis uruchomioną w terminalu, zobaczysz to:
źródło
redis-cli shutdown
. (możesz na przykład wysłać dowolną taką komendęredis-cli set cat dog; redis-cli get cat
)redis-cli set cat dog; redis-cli get cat
naredis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat
, co może być denerwujące po kilku poleceniach.alias redis-cli="redis-cli -a mypassword"
. W ten sposób możesz wykonywać połączenia jak w moim oryginalnym komentarzu bez konieczności ponownego podawania hasła przy każdym użyciu.redis-cli shutdown
jest najbardziej skuteczny. Akceptowana odpowiedź nie działa dla mnie (OSX Lion). Dzięki, @JesseBuesking.źródło
redis-cli.exe shutdown
redis-cli --help
mogło to obejmować tę sprawę.Dla OSX utworzyłem następujące aliasy do uruchamiania i zatrzymywania
redis
(instalowane z Homebrew):Działa to świetnie na rozwój lokalny!
Teraz Homebrew ma
homebrew-services
możliwość uruchamiania, zatrzymywania i restartowania usług. usługi homebrewbrew services
jest automatycznie instalowany po uruchomieniu.Jeśli używasz
run
, to nie uruchomi się przy logowaniu (ani nie uruchomi się).start
uruchomiredis
usługę i doda ją przy logowaniu i uruchomieniu.źródło
brew services stop redis
również działa! :)Wpisz
SHUTDOWN
CLIlub
jeśli nie zależy ci na danych w pamięci, możesz także wpisać,
SHUTDOWN NOSAVE
aby wymusić zamknięcie serwera.źródło
Spróbować
killall redis-server
. Możesz także użyćps aux
do znalezienia nazwy i pid serwera, a następnie zabić gokill -9 here_pid_number
.źródło
Opcja 1: przejdź do katalogu instalacyjnego redis i przejdź do
src
, w moim przypadku:gdzie 6379 jest domyślnym portem.
Opcja 2: znajdź proces redis i zabij
A następnie zainicjuj zabijanie:
Używam Centos 6.7, x86_64
mam nadzieję, że to pomoże
źródło
zatrzymaj typ serwera redis w terminalu z użytkownikiem root
komunikat zostanie wyświetlony po zatrzymaniu serwera redis
jeśli chcesz uruchomić typ serwera redis
jeśli chcesz zrestartować typ serwera
źródło
service --status-all
nie pokaże redis, dlatego każdeservice
polecenie zakończy się niepowodzeniemredis-server
. Ale Redis się pojawiaps -ef
. Po prostu nie mogę znaleźć żadnego powiązanego dokumentu.sudo service redis start/stop/status
robi to samo, oba idą.Innym sposobem może być:
Działa na * NIX i OSX
źródło
MacOSX - działało :)
Krok 1: Znajdź poprzednio działający serwer Redis
Krok 2: Zabij konkretny proces, znajdując PID (identyfikator procesu) - Redis Sever
źródło
Jeśli wiesz, na jakim porcie byłby uruchomiony (domyślnie będzie to 6379), możesz użyć polecenia poniżej, aby uzyskać numer pid procesu za pomocą tego portu, a następnie wykonać polecenie zabicia dla tego samego pid.
powyższe polecenie da ci pid.
zabić
<pid>
;Spowoduje to zamknięcie serwera.
źródło
systemd, ubuntu 16.04:
źródło
Zwykle ten problem pojawia się po nieregularnym wyłączeniu komputera (lub pozostawieniu uruchomionego). Uważam, że port utknął, podczas gdy proces zatrzymuje się, ale nadal jest powiązany z poprzednim portem.
9/10 razy poprawka może być:
Dobrze iść.
źródło
W moim przypadku było to:
Aby dowiedzieć się, jaka jest nazwa Twojej usługi, możesz uruchomić:
I pokaże Ci wszystkie pliki Redis w twoim systemie.
źródło
jeśli wykonałeś instalację (np. ubuntu) podczas instalacji redis , możesz:
jak wskazał @ yojimbo87 :)
źródło
Innym sposobem może być:
źródło
Poniższe działało dla mnie na MAC
źródło
Jeśli korzystasz z opcji redis w kontenerze dokowanym, żadna z obecnych odpowiedzi nie pomoże. Musisz zatrzymać pojemnik redis. W przeciwnym razie proces redis będzie się odradzał.
źródło
Jeśli wiesz, na którym porcie (domyślnie: 6379) działa twój serwer redis, możesz przejść z opcją 1 lub możesz sprawdzić proces redis i możesz zabić z opcją 2
opcja 1:
Zabij proces na porcie:
opcja 2:
Znajdź poprzednio działający serwer Redis:
Zabij konkretny proces, znajdując PID (identyfikator procesu) - Redis Sever
Teraz uruchom serwer Redis za pomocą
źródło
Nie wiem specjalnie dla redis, ale ogólnie dla serwerów:
Jaki system operacyjny lub dystrybucja? Często pojawia się polecenie stop lub /etc/init.d / ..., które będzie w stanie wyszukać istniejący pid w pliku pid.
Możesz sprawdzić, z jakim procesem jest już powiązany port
sudo netstat -nlpt
(opcje linuksowe; inne smaki netstat będą się różnić) i zasygnalizować, że się zatrzyma. I byłoby nie skorzystaćkill -9
na uruchomionym serwerem, chyba że naprawdę nie ma innego sposobu, aby sygnał lub go zamknąć.źródło
Poniższe polecenia działają dla mnie na Ubuntu Server
źródło
W systemie MacOSX
To działało dla mnie
źródło
Jedną z rzeczy, które należy sprawdzić, czy polecenia redis nie działają, jest to, czy tworzony jest plik redis-server.pid. Określ lokalizację, w której znajduje się ten plik
i powinien mieć sekcję wyglądającą mniej więcej tak:
Sprawdź lokalizację i uprawnienia do katalogu PIDFile (w moim przypadku „/ run / redis”). Próbowałem zrestartować usługę zalogowaną podczas wdrażania, ale uprawnienia do katalogu były wymienione jako
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Jeśli potrzebujesz odświeżenia uprawnień do systemu Linux, sprawdź to . Problem polegał na tym, że uruchamiałem restart, ponieważ mój użytkownik wdrażający, którego powyższe uprawnienia to rx, nie pozwala mojemu użytkownikowi na zapis w katalogu PIDFile.
Kiedy zdałem sobie z tego sprawę, zalogowałem się przy użyciu roota, ponownie wykonałem polecenie restartu na redis (
service redis restart
) i wszystko działało. To był ból głowy, ale mam nadzieję, że zaoszczędzi to komuś trochę czasu.źródło
Redis ma parametr konfiguracyjny
pidfile
(np. /Etc/redis.conf - sprawdź kod źródłowy redis ), na przykład:Jeśli jest ustawiony lub można go ustawić, zamiast szukać identyfikatora procesu (pid) przy użyciu
ps + grep
czegoś takiego:W razie potrzeby można wykonać skrypt zatrzymania redis w ten sposób (dostosowany domyślny skrypt initis redis 5.0 w kodzie źródłowym redis ):
źródło