Я новичок в рельсах, и я использую машину ubuntu и среду разработки rubymine. Проблема в том, что я не могу остановить сервер rails. Я попытался остановить сервер, убив процесс rails. Но, когда я бегу pgrep -l rails
, такого процесса не обнаруживает. Итак, я могу убить только рубиновые процессы, но сервер не остановится.
Я пробовал ./script/server stop
(так как начал с бега ./script/server start
), но это не сработало. Погуглил и нашел несколько сообщений stackoverflow, я попытался изменить порт прослушивания порта localhost, но безуспешно. Может кто-нибудь помочь?
ruby-on-rails
epsilones
источник
источник
Ответы:
Вы можете использовать другие порты, например:
Обычно в своем терминале вы можете попытаться
Ctrl + C
выключить сервер.Другой способ убить сервер по умолчанию Ruby on Rails (который есть
WEBrick
):В вашем терминале, чтобы узнать PID процесса:
Затем используйте число в столбце PID, чтобы завершить процесс:
Например:
И некоторые из других ответов, которые я нашел:
Чтобы остановить сервер rails во время его работы, нажмите:
Вы получите контроль над
bash
. Затем введите (без$
):И это вернется в процесс, а затем завершится
Rails s
должным образом.Это немного раздражает, но это лучше, чем убить процесс вручную. Это не так уж плохо, и это лучшее, что я мог понять.
Обновленный ответ:
Вы можете использовать,
killall -9 rails
чтобы убить все запущенные приложения с "rails
" в имени.killall -9 rails
источник
{APP_ROOT}/tmp/pids/server.pid
файле, поэтому вам не нужно его искать - пока сервер работает. Итак, если вместо этогоctrl-c
вы просто запустите эту команду kill в другом терминале, она немедленно убьет сервер Webrick.вы можете использовать команду grep следующим образом:
а потом
источник
killall -9 rails
ps aux | grep puma
pkill -9 rails
убить весь процесс рельсовОбновленный ответ
ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9
Это убьет любой запущенный процесс rails. Замените rails чем-нибудь другим, чтобы убить любые другие процессы.
источник
Ниже приведены шаги, чтобы убить процесс сервера:
1. lsof -i tcp:3000
2. kill -9 1234
где
1234
PID процесса: localhost: 3000 отображается на шаге 1.ИЛИ
Удалите файл (server.pid)
Rails.root/tmp/pids/
и перезапустите сервер.ИЛИ
откройте приложение в другом порту с помощью команды:
rails s -p 3001
источник
На моем MAC
killall -9 rails
не работает. Ноkillall -9 ruby
делает.источник
COMMAND
ценность.Обычно я использую:
killall ruby
ИЛИ
pkill -9 ruby
который убьет все связанные с Ruby процессы, которые работают, например
rails server
,rails console
и т. д.источник
1. Просто удалите файл pid из каталога приложения rails.
Rails_app -> tmp -> pids -> pid file
Удалите файл и запустите
rails start
2. Для Rails 5.0 и выше вы можете использовать эту команду
rails restart
источник
Используйте
ctrl+c
для выключения вашего сервера Webrick.К сожалению, если он не работает, принудительно закройте терминал и перезапустите его.
Еще одна уловка в том, что
источник
Удалите server.pid из папки tmp / pids. В моем случае ошибка была: сервер уже запущен. Проверьте /home/sbhatta/myapp/tmp/pids/server.pid.
Итак, удаляю server.pid
rm /home/sbhatta/myapp/tmp/pids/server.pid
затем бегиrails s
источник
Шаг 1: найдите, какие элементы потребляют 3000 порт.
Шаг 2. Найдите процесс с именем
Для Mac
Для Ubuntu
Шаг 3: Найдите PID процесса и завершите его работу.
источник
Ctrl-Z обычно помогает.
источник
Я использовал,
killall -9 rails
как предложил Шри, и это не сработало. Я настроил команду на,killall -9 ruby
и сервер сразу закрылся.Tl; др:
killall -9 ruby
источник
это так просто, как
ни больше ни меньше
источник
Когда сервер rails не запускается, это означает, что он уже запущен, тогда вы можете начать, используя новый порт, например.
или он запускается и останавливается в том случае, если вы хотите удалить временную папку в структуре каталогов rails, он запускает сервер rails.
источник
проверьте /tmp/tmp/server.pid
внутри есть пид.
Обычно я делаю "kill -9 THE_PID" в cmd
источник
Я заметил в Windows (я использую 10, но не уверен, что то же самое для oler). Если вы используете cmd.exe и ctrl + c, сервер raisl останавливается правильно.
Однако, если вы используете Git Bash, этого не произойдет. Он говорит, что есть, но когда вы смотрите на pids tmp, он все еще там.
Может, ошибка с git bash?
источник
killall -9 ruby
убьет все процессы ruby, и, по крайней мере, на моей машине серверы rails будут отображаться как процессы ruby.killall -9 rails
гораздо более конкретен и не работает для старых версий серверов rails (выдает сообщение rails: no process found, потому что процесс называется ruby)Обнаружил эту проблему некоторое время назад. После отправки формы в activeadmin сервер rails просто завис, и я не смог убить его обычными средствами (даже после ctrl + z он все еще работал в фоновом режиме). Ответ учащегося помог, но этой команде не нужен идентификатор процесса.
источник
Уже поздно для этого вопроса. Вот мои 2 цента. Я сделал рейк-задачу для остановки сервера, когда у меня нет к нему доступа. Я тестировал только на Mac.
С его помощью вы можете просто добавить его в свой проект, а затем запустить команду rake.
Ну вот:
Основная ссылка: -последняя версия будет здесь. https://gist.github.com/houmanka/289184ca5d8d92de0499#file-server-rake
Здесь есть код:
источник
Кроме того, убедитесь, что вы выполняете команду Cntrl + C в том же терминале (вкладке), который используется для запуска сервера.
В моем случае у меня было 2 вкладки, но я забыл остановить сервер на правильной вкладке, и мне было интересно, почему Cntrl + C не работает.
источник
Один очень простой способ был бы
gem install shutup
затем перейдите в текущую папку вашего проекта рельсов и запустите
shutup
# это убьет текущий процесс RailsВы можете использовать команду "выключение" каждый раз, когда захотите
ДИКЛАЙМЕР: Я создатель этого драгоценного камня
ПРИМЕЧАНИЕ: если вы используете rvm, установите гем глобально
источник
Для моей машины с windows 10 Ctrl - C+ Ctrl - Dработает.
источник
Мы можем убить сеанс rails в Linux, используя PORT no
здесь 3000 - это номер порта. Теперь перезапустите ваш сервер, вы увидите, что ваш сервер находится в рабочем состоянии.
источник
Следуй этим шагам:
источник
Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)
Просто откройте файл, используя указанное местоположение
sudo vi /Users/user1/go/src/github.com/rails_app/rails_project/tmp/pids/server.pid
найдите process_id / thread_id, на котором запущен процесс.
Убить указанный процесс / поток, используя
kill -9 84699
источник
На рельсах 6 с использованием
ps aux | grep rails
не возвращал серверный процессЯ должен был сделать
ps aux | grep puma
чтобы найти реальный процесс, а затем убить его, используя
kill -9 {process_id}
источник
Если вы используете более современную версию Rails и она использует Puma в качестве веб-сервера, вы можете выполнить следующую команду, чтобы найти застрявший процесс Puma:
Результат будет примерно таким:
Вам нужен процесс, о котором не идет речь
grep
. В данном случае идентификатор процесса - 85923.Затем я могу запустить следующую команду, чтобы убить этот процесс:
источник