Estou no mac, fazendo:
rails server
Eu recebo:
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
Eu sei que posso iniciar um em uma nova porta, mas quero matar esse processo.
ruby-on-rails
Blankman
fonte
fonte
PID
número real que é mostrado em seu console ao inserir a primeira linha de código (por exemplo,12345
).lsof -wni tcp:3000
vai sempre mostrar todos os processos escutando esse protocolo: combinação de porta. (onde 3000 deve ser substituído pela porta do servidor local. por exemplo, no Rails, isso é 3000 por padrão).kill -9 $(lsof -i tcp:3000 -t)
fonte
-t
atravésspecifies 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).
do que eu acho que você sabe o quekill
vai fazerkill -9
por rotina / habitualmente.Você precisa obter o ID do processo do programa usando a porta tcp 3000. Para obter o ID do processo
E então, usando o ID do processo, simplesmente mate o processo usando o comando ubuntu kill.
Ou apenas execute o comando combinado mencionado abaixo. Primeiro ele buscará o pid e depois matará esse processo.
fonte
kill -9
por rotina / habitualmente.Para quem se deparar com essa pergunta que não está em um Mac: supondo que você saiba que seu servidor está executando na porta 3000, você pode fazer isso de uma só vez executando o seguinte:
Mas, como Toby mencionou, a implementação do fusor no Mac OS é bastante primitiva e esse comando não funcionará no mac.
fonte
-v
sinalizador também mostra uma pequena quantidade de informações sobre qual processo foi morto. Entãofuser -kv 3000/tcp
. Infelizmente, o fusor do MacOS não tem essa capacidade.kill $(lsof -ti tcp:3000)
é um equivalente bastante próximo, no entanto.Algumas vezes há uma chance de o servidor Rails não ser fechado corretamente. Você pode encontrar o processo usado pelos trilhos
A saída será como
Aqui process_id 12609 é usado pelo seu servidor rails.
Você pode matá-lo facilmente por comando
fonte
kill -9
por rotina / habitualmente.ps aux | grep puma
Todas as respostas acima são realmente boas, mas eu precisava de uma maneira de digitar o mínimo possível no terminal, então criei uma gema para isso. Você pode instalar o gem apenas uma vez e executar o comando 'shutup' toda vez que quiser interromper o processo do Rails (enquanto estiver na pasta atual).
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
lsof
abordagem é mais confiável.ps aux | grep rails use este comando, você pode matar o servidor
fonte
Por padrão, o servidor rails usa a porta 3000.
Portanto, você tem 2 opções para executar o servidor rails.
1. Você pode executar o servidor em outra porta, definindo a porta personalizada usando o seguinte comando
rails s -p 3001
2. Ou você pode eliminar todo o processo em execução do ruby executando o seguinte comando e, em
killall -9 ruby
seguida, execute
rails server
fonte
Solução de uma linha:
fonte
Digitar:
Em seguida, procure -w, -n e -i
-i: coisas na internet -n: torna mais rápido -w: alterna avisos
Há MUITO MAIS detalhes nas páginas de manual
fonte
Se você estiver na máquina Windows, siga estas etapas.
Lá você encontrará um arquivo chamado server.pid
delete isso.
É isso aí.
EDIT: Consulte este
fonte