Сервер Rails говорит, что порт уже используется, как убить этот процесс?
Я на mac, делаю:
rails server
Я:
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
Я знаю, что могу запустить его на Новом Порту, но я хочу убить этот процесс.
9 ответов:
предполагая, что вы хотите убить все, что находится на порту 3000 (который обычно использует webrick), введите это в свой терминал, чтобы узнать PID процесса:
$ lsof -wni tcp:3000затем используйте число в столбце PID, чтобы убить процесс:
$ kill -9 PID
вам нужно получить идентификатор процесса программы с помощью tcp-порта 3000. Чтобы получить идентификатор процесса
lsof -i tcp:3000 -tа затем, используя этот идентификатор процесса, просто убейте процесс с помощью команды Ubuntu kill.
kill -9 pidили просто запустите ниже упомянутой команды combine. Сначала он получит pid, а затем убьет этот процесс.
kill -9 $(lsof -i tcp:3000 -t)
для тех, кто наткнулся на этот вопрос, который не находится на Mac: предполагая, что вы знаете, что ваш сервер работает на порту 3000, вы можете сделать это одним выстрелом, выполнив следующее:
fuser -k 3000/tcpно, как уже упоминал Тоби, реализация fuser в Mac OS довольно примитивна, и эта команда не будет работать на mac.
несколько раз есть шанс, что сервер rails не закрыт должным образом. Вы можете найти процесс, используемый rails
ps aux | grep rails
вывод будет как
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здесь process_id 12609 используется вашим сервером rails.
вы можете легко убить его с помощью команды
убить -9 12609
все ответы выше действительно хороши, но мне нужен был способ ввести как можно меньше в терминале, поэтому я создал драгоценный камень для этого. Вы можете установить драгоценный камень только один раз и запустить команду "shutup" каждый раз, когда вы хотите убить процесс Rails (находясь в текущей папке).
gem install shutupзатем перейдите в текущую папку вашего проекта rails и запустите
shutup# это убьет процесс Rails в настоящее время работаетвы можете использовать заткнись команду '' каждый раз, когда вы хотите
ДИКЛАЙМЕР: я создатель этого драгоценного камня
Примечание: Если вы используете rvm установить драгоценный камень глобально
rvm @global do gem install shutup
тип:
man lsofтогда ищи-w, - n, и-i
- i: интернет вещи - n: делает его быстрее -ж: предупреждения переключает
есть более подробная информация на man-страницах
Если вы на машине Windows, выполните следующие действия.
c:/project/ cd tmp c:/project/tmp cd pids c:/project/tmp/pids dirтам будет файл под названием Server.пид
удалить.
c:/project/tmp/pid> del *.pidвот и все.
Comments