Я на 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
Я знаю, что могу запустить один на новом порту, но я хочу убить этот процесс.
ruby-on-rails
Бланкмэн
источник
источник
PID
фактическое число, которое отображается в вашей консоли при вводе первой строки кода (например,12345
).lsof -wni tcp:3000
будет показывать все процессы, прослушивающие этот протокол: комбинация портов. (где 3000 следует заменить на порт локального сервера. Например, в Rails это 3000 по умолчанию).kill -9 $(lsof -i tcp:3000 -t)
источник
-t
значит,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).
я думаю, вы знаете, чтоkill
будете делатьkill -9
rote / привычно.Вам нужно получить идентификатор процесса программы, используя TCP-порт 3000. Чтобы получить идентификатор процесса
А затем, используя этот идентификатор процесса, просто убейте процесс, используя команду ubuntu kill.
Или просто запустите ниже упомянутую команду объединения. Сначала он получит pid, а затем убьет этот процесс.
источник
kill -9
rote / привычно.Для любого, кто сталкивается с этим вопросом, которого нет на Mac: если вы знаете, что ваш сервер работает на порте 3000, вы можете сделать это за один раз, выполнив следующее:
Но, как уже упоминал Тоби, реализация fuser в Mac OS довольно примитивна, и эта команда не будет работать на mac.
источник
-v
флага также показывает небольшое количество информации о том, какой процесс был убит. Такfuser -kv 3000/tcp
. Увы, что у MacOS нет этой способности.kill $(lsof -ti tcp:3000)
это довольно близкий эквивалент, хотя.Иногда есть вероятность, что сервер рельсов не будет закрыт должным образом. Вы можете найти процесс, используемый рельсами
Выход будет как
Здесь process_id 12609 используется вашим сервером rails.
Вы можете легко убить его командой
источник
kill -9
rote / привычно.ps aux | grep puma
Все ответы выше действительно хороши, но мне нужен был способ набрать как можно меньше в терминале, поэтому я создал для этого драгоценный камень. Вы можете установить гем только один раз и запускать команду «shutup» каждый раз, когда хотите уничтожить процесс Rails (находясь в текущей папке).
gem install shutup
затем перейдите в текущую папку вашего проекта rails и запустите
shutup
# это убьет запущенный в данный момент Rails-процессВы можете использовать команду «shutup» каждый раз, когда вы хотите
DICLAIMER: я создатель этого драгоценного камня
ПРИМЕЧАНИЕ: если вы используете rvm, установите гем глобально
источник
lsof
подход является более надежным.ps aux | grep rails используйте эту команду, чтобы убить сервер
источник
По умолчанию сервер rails использует порт 3000.
Таким образом, у вас есть 2 варианта запуска сервера rails.
1. Либо вы можете запустить сервер на другом порту, определив пользовательский порт с помощью следующей команды
rails s -p 3001
2. Или вы можете уничтожить все запущенные процессы ruby, выполнив следующую команду,
killall -9 ruby
затем запустите
rails server
источник
Одноканальное решение:
источник
Введите:
Затем найдите -w, -n и -i
-i: интернет-вещи -n: делает это быстрее -w: переключает предупреждения
ПУТЬ более подробно на страницах руководства
источник
Если вы находитесь на машине Windows, выполните следующие действия.
Там у вас будет файл с именем server.pid
удали это.
Это оно.
РЕДАКТИРОВАТЬ: Пожалуйста, обратитесь это
источник