Jestem na komputerze Mac, robiąc:
rails server
Dostaję:
2010-12-17 12:35:15] INFO WEBrick 1.3.1
[2010-12-17 12:35:15] INFO ruby 1.8.7 (2010-08-16) [i686-darwin10.4.0]
[2010-12-17 12:35:15] WARN TCPServer Error: Address already in use - bind(2)
Exiting
Wiem, że mogę uruchomić jeden na nowym porcie, ale chcę zabić ten proces.
ruby-on-rails
Blankman
źródło
źródło
PID
na rzeczywisty numer wyświetlany w konsoli po wprowadzeniu pierwszego wiersza kodu (np12345
.).lsof -wni tcp:3000
się zawsze pokazać wszystkie procesy słuchania tego protokołu: połączenie portu. (gdzie 3000 ma zostać zastąpione lokalnym portem serwera, np. w Railsach jest to domyślnie 3000).kill -9 $(lsof -i tcp:3000 -t)
źródło
-t
oznacza,specifies that lsof should produce terse output with process identifiers only and no header - e.g., so that the output may be piped to kill(1).
że chyba wiesz, cokill
zrobiszkill -9
przez pamięć / nałogowo.Musisz uzyskać identyfikator procesu programu za pomocą portu TCP 3000. Aby uzyskać identyfikator procesu
A następnie używając tego identyfikatora procesu, po prostu zabij proces za pomocą komendy ubuntu kill.
Lub po prostu uruchom poniższe polecenie łączenia. Najpierw pobierze pid, a następnie zabije ten proces.
źródło
kill -9
przez pamięć / nałogowo.Dla każdego, kto natknie się na to pytanie, którego nie ma na komputerze Mac: zakładając, że wiesz, że twój serwer działa na porcie 3000, możesz to zrobić jednym strzałem, wykonując następujące czynności:
Ale jak wspomniał Toby, implementacja utrwalacza w Mac OS jest dość prymitywna i to polecenie nie będzie działać na Macu.
źródło
-v
flagi pokazuje również niewielką ilość informacji o tym, jaki proces został zabity. Takfuser -kv 3000/tcp
. Niestety utrwalacz systemu MacOS nie ma tej zdolności.kill $(lsof -ti tcp:3000)
jest jednak dość bliskim odpowiednikiem.Czasami istnieje szansa, że serwer szyn nie zostanie poprawnie zamknięty. Możesz znaleźć proces używany przez szyny
Wyjście będzie jak
Tutaj proces_id 12609 jest używany przez twój serwer szynowy.
Możesz go łatwo zabić poleceniem
źródło
kill -9
przez pamięć / nałogowo.ps aux | grep puma
Wszystkie powyższe odpowiedzi są naprawdę dobre, ale potrzebowałem sposobu, aby wpisać jak najmniej w terminalu, więc stworzyłem do tego klejnot. Możesz zainstalować klejnot tylko raz i uruchomić polecenie „zamknij” za każdym razem, gdy chcesz zabić proces Railsów (będąc w bieżącym folderze).
gem install shutup
następnie przejdź do bieżącego folderu projektu Rails i uruchom
shutup
# to zabije aktualnie uruchomiony proces RailsowyMożesz użyć polecenia „zamknij się” za każdym razem, kiedy chcesz
DICLAIMER: Jestem twórcą tego klejnotu
UWAGA: jeśli używasz rvm, zainstaluj klejnot na całym świecie
źródło
lsof
podejście jest bardziej niezawodny.szyny ps aux | grep używają tego polecenia, aby zabić serwer
źródło
Domyślnie serwer Railsowy używa portu 3000.
Masz więc 2 opcje uruchomienia serwera Railsowego.
1. Albo możesz uruchomić serwer na innym porcie, definiując port niestandardowy za pomocą następującego polecenia
rails s -p 3001
2. Lub możesz zabić cały działający proces ruby, uruchamiając następujące polecenie,
killall -9 ruby
a następnie uruchom
rails server
źródło
Rozwiązanie jednoliniowe:
źródło
Wpisz:
Następnie poszukaj -w, -n i -i
-i: rzeczy internetowe -n: przyspiesza -w: przełącza ostrzeżenia
Istnieje więcej szczegółów na stronach podręcznika
źródło
Jeśli korzystasz z komputera z systemem Windows, wykonaj następujące kroki.
Tam znajdziesz plik o nazwie server.pid
Usuń to.
Otóż to.
EDYCJA: Proszę odnieść się do tego
źródło