Eu sou novo no Rails e estou usando uma máquina ubuntu e o IDE rubymine. O problema é que não consigo parar o servidor de trilhos. Eu tentei parar o servidor matando o processo de trilhos. Mas, quando executo pgrep -l rails
, esse processo não é encontrado. Portanto, sou capaz de matar apenas processos ruby, mas o servidor não para.
Eu tentei ./script/server stop
(desde que o iniciei executando ./script/server start
), mas isso não funcionou. Pesquisando e encontrando algumas postagens de stackoverflow, tentei alterar a porta de escuta da porta localhost, mas sem sucesso. Alguém poderia ajudar?
ruby-on-rails
epsilones
fonte
fonte
Respostas:
Você pode usar outras portas como as seguintes:
Normalmente, no seu terminal, você pode tentar
Ctrl + C
desligar o servidor.A outra maneira de matar o servidor padrão do Ruby on Rails (que é
WEBrick
) é:No seu terminal para descobrir o PID do processo:
Em seguida, use o número na coluna PID para interromper o processo:
Por exemplo:
E algumas das outras respostas que encontrei são:
Para parar o servidor Rails enquanto estiver em execução, pressione:
Você voltará ao controle
bash
. Em seguida, digite (sem o$
):E isso voltará ao processo e sairá
Rails s
corretamente.É um pouco chato, mas isso certamente supera a matança do processo manualmente. Não é tão ruim e é o melhor que pude descobrir.
Resposta atualizada:
Você pode usar
killall -9 rails
para matar todos os aplicativos em execução com "rails
" no nome.killall -9 rails
fonte
{APP_ROOT}/tmp/pids/server.pid
arquivo para que você não precise procurá-lo - enquanto o servidor estiver em execução. Portanto, sectrl-c
você executar esse comando kill em outro terminal, em vez de fazê- lo, ele matará o servidor Webrick imediatamente.você pode usar o comando grep da seguinte maneira,
e depois
fonte
killall -9 rails
ps aux | grep puma
pkill -9 rails
matar todo o processo de trilhosResposta atualizada
ps aux|grep 'rails'|grep -v 'grep'|awk '{ print $2 }'|xargs kill -9
Isso matará qualquer processo de trilhos em execução. Substitua 'trilhos' por outra coisa para matar quaisquer outros processos.
fonte
A seguir estão as etapas para eliminar o processo do servidor:
1. lsof -i tcp:3000
2. kill -9 1234
onde
1234
está o PID do processo: localhost: 3000 exibido na etapa 1.OU
Remova o arquivo (server.pid) em
Rails.root/tmp/pids/
e reinicie o servidor.OU
abra o aplicativo em outra porta usando o comando:
rails s -p 3001
fonte
No meu MAC o
killall -9 rails
não funciona. Maskillall -9 ruby
faz.fonte
COMMAND
valor também.Eu geralmente uso:
killall ruby
OU
pkill -9 ruby
que vai matar todos os processos relacionados rubi que estão em execução como
rails server
,rails console
, etc.fonte
1. Simplesmente exclua o arquivo pid do diretório do aplicativo rails
Rails_app -> tmp -> pids -> pid file
Exclua o arquivo e execute
rails start
2. Para o Rails 5.0 e superior, você pode usar este comando
rails restart
fonte
Use
ctrl+c
para desligar o servidor Webrick.Infelizmente, se não funcionar, feche o terminal com força e reinicie-o.
Outro truque é que
fonte
Exclua o server.pid da pasta tmp / pids. No meu caso, o erro foi: Um servidor já está sendo executado. Verifique /home/sbhatta/myapp/tmp/pids/server.pid.
Então, eu apago server.pid
rm /home/sbhatta/myapp/tmp/pids/server.pid
então corrarails s
fonte
Etapa 1: encontre quais itens estão consumindo 3000 portas.
etapa 2: encontre o processo chamado
Para Mac
Para o Ubuntu
Etapa 3: encontre o PID do processo e mate-o.
fonte
Ctrl-Z normalmente deve fazer o truque.
fonte
Eu usei
killall -9 rails
como Sri sugeriu e não funcionou. Ajustei o comandokillall -9 ruby
e o servidor foi fechado imediatamente.Tl; dr:
killall -9 ruby
fonte
é tão simples quanto
nada mais nada menos
fonte
Quando o servidor rails não inicia, significa que já está em execução, então você pode começar usando uma nova porta, por exemplo.
ou , nesse caso, você deseja excluir a pasta temp na estrutura de diretórios do rails , inicia o servidor rails.
fonte
verifique o /tmp/tmp/server.pid
há um pid dentro.
Normalmente, eu vou "matar -9 THE_PID" no cmd
fonte
Tenho notado no Windows (estou usando 10, mas não tenho certeza se o mesmo para oler). Se você usar cmd.exe e ctrl + c, o servidor raisl será interrompido corretamente.
No entanto, se você usa o Git Bash, isso não acontece. Diz que sim, mas quando você olha para os tmp pids, ele ainda está lá.
Talvez um bug com o git bash?
fonte
killall -9 ruby
matará todos os processos ruby e, pelo menos na minha máquina, os servidores Rails aparecerão como processos ruby.killall -9 rails
é muito mais específico e não funciona para versões mais antigas de servidores rails (fornece um 'rails: nenhum processo encontrado' porque o processo é chamado de ruby)Encontrou esse problema há um tempo atrás. Depois de enviar um formulário no activeadmin, o servidor rails travou e eu não consegui eliminá-lo usando meios normais (mesmo depois de ctrl + z ainda estar em execução em segundo plano). A resposta do aluno ajudou, mas esse comando não precisa da identificação do processo.
fonte
É tarde para esta pergunta. Aqui estão os meus 2 centavos. Fiz uma tarefa de rake para interromper o servidor quando não tenho acesso a ele. Só testei no Mac.
Com isso, você pode simplesmente adicioná-lo ao seu projeto e executar o comando rake.
Aqui está:
Link principal: a versão mais recente estará aqui. https://gist.github.com/houmanka/289184ca5d8d92de0499#file-server-rake
Algum código aqui:
fonte
Além disso, verifique se você está executando o comando Cntrl + C no mesmo terminal (guia) usado para iniciar o servidor.
No meu caso, eu tinha duas guias, mas esqueci de parar o servidor da guia correta e fiquei pensando por que o Cntrl + C não está funcionando.
fonte
Uma maneira super fácil seria
gem install shutup
então vá na pasta atual do seu projeto rails e execute
shutup
# isso matará o processo Rails atualmente em execuçãoVocê pode usar o comando 'shutup' toda vez que quiser
DICLAIMER: Eu sou o criador desta gema
NOTA: se você estiver usando o rvm, instale a gema globalmente
fonte
Para a minha máquina Windows 10, o Ctrl - C+ Ctrl - Dfunciona.
fonte
Podemos matar a sessão de trilhos no Linux usando PORT no
aqui 3000 é uma porta não. Agora reinicie o servidor, você verá que o servidor está em estado de execução.
fonte
Siga esses passos:
fonte
Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)
Basta abrir o arquivo usando o local indicado
sudo vi /Users/user1/go/src/github.com/rails_app/rails_project/tmp/pids/server.pid
encontre o process_id / thread_id no qual o processo está sendo executado.
Mate o processo / thread especificado usando
kill -9 84699
fonte
Nos trilhos 6, usando
ps aux | grep rails
não estava retornando o processo do servidoreu tive que fazer
ps aux | grep puma
para encontrar o processo real e depois matá-lo usando
kill -9 {process_id}
fonte
Se você estiver usando uma versão mais moderna do Rails e usar o Puma como servidor da Web, poderá executar o seguinte comando para encontrar o processo Puma preso:
Isso resultará em uma saída semelhante a esta:
Você deseja o processo que não está se referindo
grep
. Nesse caso, o ID do processo é 85923.Posso então executar o seguinte comando para eliminar esse processo:
fonte