Rails server mówi port już używany, jak zabić ten proces?

Jestem na Macu, robi:

Rails server

Otrzymuję:

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.
Author: Blankman, 2010-12-17

9 answers

Zakładając, że chcesz zabić to, co jest na porcie 3000 (czyli tego, czego zwykle używa webrick), wpisz to w swoim terminalu, aby dowiedzieć się PID procesu:

$ lsof -wni tcp:3000

Następnie użyj liczby w kolumnie PID, aby zabić proces:

$ kill -9 PID
 567
Author: idlefingers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-17 17:47:23

kill -9 $(lsof -i tcp:3000 -t)

 94
Author: Bijan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-05 04:10:54

Musisz uzyskać identyfikator procesu programu używając portu tcp 3000. Aby uzyskać identyfikator procesu

lsof -i tcp:3000 -t

A następnie używając tego identyfikatora procesu, po prostu zabij proces używając polecenia Ubuntu kill.

kill -9 pid

Lub po prostu uruchom poniższe polecenie combine. Najpierw pobierze pid, a następnie zabije ten proces.

kill -9 $(lsof -i tcp:3000 -t)
 24
Author: Shahzad Tariq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-27 12:19:23

Dla każdego, kto natknie się na to pytanie, które nie znajduje się na komputerze Mac: zakładając, że wiesz, że twój serwer działa na porcie 3000, możesz to zrobić w jednym ujęciu, wykonując następujące czynności:

fuser -k 3000/tcp

Ale jak wspomniał Toby, implementacja fusera w Mac OS jest raczej prymitywna i to polecenie nie będzie działać na mac.

 16
Author: saneshark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-22 22:30:58

Czasami jest szansa, że serwer rails nie zamknie się poprawnie. Możesz znaleźć proces używany przez rails

Szyny Ps aux | grep

Wyjście będzie takie jak

user     12609  9.8  0.5  66456 45480 pts/0    Sl+  21:06   0:02 /home/user/.rvm/rubies/ruby-2.2.0-preview1/bin/ruby bin/rails s

Tutaj process_id 12609 jest używany przez twój serwer rails.

Możesz go łatwo zabić za pomocą polecenia

Kill -9 12609

 13
Author: devudilip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-16 15:40:41

Wszystkie powyższe odpowiedzi są naprawdę dobre, ale potrzebowałem sposobu, aby pisać jak najmniej w terminalu, więc stworzyłem do tego klejnot. Możesz zainstalować gem tylko raz i uruchomić komendę 'shutup' za każdym razem, gdy chcesz zabić proces Rails (będąc w bieżącym folderze).

gem install shutup

Następnie przejdź do bieżącego folderu twojego projektu rails i uruchom

shutup # to zabije aktualnie uruchomiony proces Rails

Możesz użyć polecenia 'shutup' za każdym razem chcesz

DICLAIMER: jestem twórcą tego klejnotu

Uwaga: Jeśli używasz rvm zainstaluj gem globalnie

rvm @global do gem install shutup
 10
Author: Lorenzo Sinisi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-17 14:54:46

Ps aux / grep rails użyj tej komendy możesz zabić Serwer

 2
Author: Rocker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-10 09:03:17

Wpisz:

man lsof

Następnie poszukaj-w, - n I-i

- i: internet stuff - N: sprawia, że szybciej -w: włącza Ostrzeżenia

Jest o wiele więcej szczegółów na stronach man

 -4
Author: InsanelyADHD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-20 20:21:22

Jeśli korzystasz z komputera z systemem windows, wykonaj następujące kroki.

c:/project/
cd tmp
c:/project/tmp
cd pids
c:/project/tmp/pids
dir

Tam znajdziesz plik o nazwie server.pid

Usuń to.

c:/project/tmp/pid> del *.pid
To wszystko.

Edytuj: proszę odnieść się do tego

 -6
Author: Prabhakar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:37