Jestem nowy w railsach i używam maszyny ubuntu i IDE rubymine. Problem w tym, że nie mogę zatrzymać serwera railsowego. Próbowałem zatrzymać serwer, zabijając proces railsów. Ale kiedy uruchamiam pgrep -l rails
, nie znaleziono takiego procesu. Więc mogę zabijać tylko procesy ruby, ale serwer się nie zatrzymuje.
Próbowałem ./script/server stop
(odkąd zacząłem to od biegania ./script/server start
), ale to nie zadziałało. Szukając w Google i znajdując posty z przepełnieniem stosu, próbowałem zmienić port nasłuchiwania portu lokalnego hosta, ale bez powodzenia. Czy ktoś mógłby pomóc?
ruby-on-rails
epsilones
źródło
źródło
Odpowiedzi:
Możesz użyć innych portów, takich jak:
Zwykle w terminalu możesz spróbować
Ctrl + C
zamknąć serwer.Innym sposobem na zabicie domyślnego serwera Ruby on Rails (którym jest
WEBrick
) jest:W swoim terminalu, aby znaleźć PID procesu:
Następnie użyj liczby w kolumnie PID, aby zakończyć proces:
Na przykład:
A niektóre z innych odpowiedzi, które znalazłem, to:
Aby zatrzymać działający serwer railsowy, wciśnij:
Otrzymasz kontrolę z powrotem do
bash
. Następnie wpisz (bez$
):I to wróci do procesu, a następnie zakończy się
Rails s
poprawnie.To trochę denerwujące, ale to z pewnością przebija ręczne zabijanie procesu. Nie jest tak źle i to najlepsze, co mogłem zrozumieć.
Zaktualizowana odpowiedź:
Możesz użyć,
killall -9 rails
aby zabić wszystkie uruchomione aplikacje z „rails
” w nazwie.killall -9 rails
źródło
{APP_ROOT}/tmp/pids/server.pid
pliku, więc nie musisz go szukać - o ile działa serwer. Tak więc, jeśli zamiast wykonywaćctrl-c
polecenie kill w innym terminalu, natychmiast zabije serwer Webrick.możesz użyć polecenia grep w następujący sposób,
i wtedy
źródło
killall -9 rails
ps aux | grep puma
pkill -9 rails
zabić cały proces szynZaktualizowana odpowiedź
ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9
To zabije każdy działający proces railsowy. Zastąp „rails” czymś innym, aby zabić inne procesy.
źródło
Oto kroki, aby zabić proces serwera:
1. lsof -i tcp:3000
2. kill -9 1234
gdzie
1234
jest PID procesu: localhost: 3000 wyświetlany w kroku 1.LUB
Usuń plik (server.pid) pod
Rails.root/tmp/pids/
i zrestartuj serwer.LUB
otwórz aplikację w innym porcie za pomocą polecenia:
rails s -p 3001
źródło
Na moim MAC
killall -9 rails
nie działa. Alekillall -9 ruby
tak.źródło
COMMAND
wartość.Generalnie używam:
killall ruby
LUB
pkill -9 ruby
który zabije wszystkie procesy związane rubinowe, które są uruchomione jak
rails server
,rails console
itpźródło
1. Po prostu usuń plik pid z katalogu aplikacji railsów
Rails_app -> tmp -> pids -> pid file
Usuń plik i uruchom
rails start
2. Dla Rails 5.0 i nowszych możesz użyć tego polecenia
rails restart
źródło
Służy
ctrl+c
do zamykania serwera Webrick.Niestety, jeśli to nie działa, zamknij na siłę terminal i uruchom go ponownie.
Kolejna sztuczka polega na tym
źródło
Usuń server.pid z folderu tmp / pids. W moim przypadku błąd brzmiał: Serwer już działa. Sprawdź /home/sbhatta/myapp/tmp/pids/server.pid.
Więc usunąłem server.pid
rm /home/sbhatta/myapp/tmp/pids/server.pid
następnie uruchomićrails s
źródło
Krok 1: sprawdź, jakie elementy zużywają port 3000.
krok 2: znajdź proces o nazwie
Dla Maca
Dla Ubuntu
Krok 3: Znajdź PID procesu i zakończ go.
źródło
Ctrl-Z powinno normalnie załatwić sprawę.
źródło
Użyłem
killall -9 rails
tak, jak sugerował Sri i to nie zadziałało. Dostosowałem poleceniekillall -9 ruby
i serwer natychmiast się zamknął.Tl; dr:
killall -9 ruby
źródło
to jest tak proste, jak
nic dodać nic ująć
źródło
Gdy serwer railsowy się nie uruchamia to znaczy, że już działa to możesz zacząć używając nowego portu np.
lub uruchamia się i zatrzymuje w takim przypadku, gdy chcesz usunąć folder tymczasowy w strukturze katalogów rails , uruchamia serwer rails.
źródło
sprawdź /tmp/tmp/server.pid
w środku jest pid.
Zwykle robię „kill -9 THE_PID” w cmd
źródło
Zauważyłem w systemie Windows (używam 10, ale nie jestem pewien, czy to samo dla oler). Jeśli używasz cmd.exe i ctrl + c, serwer raisl zatrzymuje się poprawnie.
Jednak jeśli używasz Git Bash, tak nie jest. Mówi, że tak, ale kiedy spojrzysz na pids tmp, nadal tam jest.
Może błąd z git bash?
źródło
killall -9 ruby
zabije wszystkie procesy ruby, a przynajmniej na moim komputerze serwery railsowe pojawiają się jako procesy ruby.killall -9 rails
jest dużo bardziej szczegółowy i nie działa na starszych wersjach serwerów railsowych (daje 'rails: nie znaleziono procesu', ponieważ proces nazywa się ruby)Napotkałem ten problem jakiś czas temu. Po wysłaniu formularza w activeadmin, serwer railsowy się zawiesił i nie mogłem go zabić zwykłymi środkami (nawet po ctrl + z nadal działał w tle). Odpowiedź ucznia pomogła, ale to polecenie nie wymaga identyfikatora procesu.
źródło
Na to pytanie jest już późno. Oto moje 2 centy. Zrobiłem zadanie rake'u, aby zatrzymać serwer, gdy nie mam do niego dostępu. Jednak testowałem tylko na Macu.
Dzięki temu możesz po prostu dodać go do swojego projektu, a następnie uruchomić polecenie rake.
Proszę bardzo:
Link do streszczenia: -najnowsza wersja będzie tutaj. https://gist.github.com/houmanka/289184ca5d8d92de0499#file-server-rake
Tutaj trochę kodu:
źródło
Upewnij się również, że wykonujesz polecenie Cntrl + C w tym samym terminalu (karcie), który jest używany do uruchamiania serwera.
W moim przypadku miałem 2 zakładki, ale zapomniałem zatrzymać serwer z prawidłowej karty i zastanawiałem się, dlaczego Cntrl + C nie działa.
źródło
Byłby jeden super łatwy sposób
gem install shutup
następnie przejdź do bieżącego folderu projektu railsów i uruchom
shutup
# to zabije aktualnie uruchomiony proces RailsówMożesz użyć polecenia „shutup”, kiedy tylko chcesz
DICLAIMER: Jestem twórcą tego klejnotu
UWAGA: jeśli używasz rvm, zainstaluj gem globalnie
źródło
Na moim komputerze z systemem Windows 10 Ctrl - C+ Ctrl - Ddziała.
źródło
Możemy zabić sesję rails na Linuksie używając PORT nr
tutaj 3000 to port nr. Teraz zrestartuj serwer, zobaczysz, że twój serwer jest uruchomiony.
źródło
Wykonaj następujące kroki:
źródło
Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)
Po prostu otwórz plik, korzystając z podanej lokalizacji
sudo vi /Users/user1/go/src/github.com/rails_app/rails_project/tmp/pids/server.pid
znajdź identyfikator_procesu / identyfikator_wątku, w którym proces jest uruchomiony.
Zabij określony proces / wątek za pomocą
kill -9 84699
źródło
Na szynach 6 za pomocą
ps aux | grep rails
nie zwracał procesu serweramusiałem zrobić
ps aux | grep puma
aby znaleźć rzeczywisty proces, a następnie zabić go za pomocą
kill -9 {process_id}
źródło
Jeśli używasz bardziej nowoczesnej wersji Rails i używa ona Pumy jako serwera WWW, możesz uruchomić następujące polecenie, aby znaleźć zablokowany proces Puma:
Wynik będzie podobny do tego:
Chcesz procesu, do którego się nie odnosi
grep
. W tym przypadku identyfikator procesu to 85923.Następnie mogę uruchomić następujące polecenie, aby zabić ten proces:
źródło