Reiniciar o servidor Django exibe o seguinte erro:
this port is already running....
Esse problema ocorre especificamente no Ubuntu e não em outros sistemas operacionais. Como posso liberar a porta para reiniciar o servidor?
Reiniciar o servidor Django exibe o seguinte erro:
this port is already running....
Esse problema ocorre especificamente no Ubuntu e não em outros sistemas operacionais. Como posso liberar a porta para reiniciar o servidor?
Respostas:
Uma solução mais simples basta digitar sudo fuser -k 8000/tcp
. Isso deve matar todos os processos associados à porta 8000.
EDITAR:
Para usuários osx, você pode usar sudo lsof -t -i tcp:8000 | xargs kill -9
netstat -ntlp
Isso mostrará algo assim.
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 6599/python
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN -
tcp 0 0 192.168.124.1:53 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp6 0 0 :::3306 :::* LISTEN
Então agora feche a porta na qual o Django / python já está sendo executado, matando o processo associado a ele.
kill -9 PID
No meu caso
kill -9 6599
Agora execute seu aplicativo Django.
ps aux | grep -i manage
after that you will see all process
ubuntu@ip-10-154-22-113:~/django-apps/projectname$ ps aux | grep -i manage
ubuntu 3439 0.0 2.3 40228 14064 pts/0 T 06:47 0:00 python manage.py runserver project name
ubuntu 3440 1.4 9.7 200996 59324 pts/0 Tl 06:47 2:52 /usr/bin/python manage.py runserver project name
ubuntu 4581 0.0 0.1 7988 892 pts/0 S+ 10:02 0:00 grep --color=auto -i manage
kill -9 process id
e.d kill -9 3440
`enter code here`after that :
python manage.py runserver project name
Por padrão, o comando runserver inicia o servidor de desenvolvimento no IP interno na porta 8000.
Se você deseja alterar a porta do servidor, passe-a como um argumento de linha de comando. Por exemplo, este comando inicia o servidor na porta 8080:
python manage.py runserver 8080
Não usamos este comando {sudo lsof -t -i tcp: 8000 | xargs kill -9} Porque fecha todas as guias ... Você deve usar para
ps -ef | grep python
kill -9 process_id
ps -ef | grep python (mostra todo o processo com id)
kill -9 11633 (11633 é um ID de processo para: - / bin / python manage.py runserver)
Esta é uma expansão da resposta de Mounir. Eu adicionei um script bash que cobre isso para você. Basta executar em ./scripts/runserver.sh
vez de ./manage.py runserver
e funcionará exatamente da mesma maneira.
#!/bin/bash
pid=$(ps aux | grep "./manage.py runserver" | grep -v grep | head -1 | xargs | cut -f2 -d" ")
if [[ -n "$pid" ]]; then
kill $pid
fi
fuser -k 8000/tcp
./manage.py runserver
Para mim, isso acontece porque minha solicitação de API no Postman está sendo interceptada por um ponto de interrupção do depurador no meu aplicativo ... deixando a solicitação suspensa. Se eu cancelar a solicitação no Postman antes de matar o servidor do meu aplicativo, o erro não ocorre em primeiro lugar.
-> Portanto, tente cancelar as solicitações abertas que você está fazendo em outros programas.
No macOS, uso sudo lsof -t -i tcp:8000 | xargs kill -9
quando esqueço de cancelar a solicitação de http aberto para resolver. error = That port is already in use.
Isso também fecha o meu aplicativo Postman, e é por isso que minha primeira solução é melhor.
Digite 'fg' como comando depois desse ctl-c.
Comando:
Fg mostrará qual está sendo executado em segundo plano. Depois disso, o ctl-c o interromperá.
fg
ctl-c
ps aux | grep gerenciar
Ubuntu 3438 127.0.0 2.3 40256 14064 pts / 0 T 06:47 0:00 python manage.py runserver
kill -9 3438
Parece que IDEs, VSCode, Puppeteer, nodemon, express, etc. causam esse problema, você executou um processo em segundo plano ou apenas fechou a área de depuração [navegador, terminal etc.] ou qualquer outra coisa, de qualquer forma, respondi à mesma pergunta antes, aqui está o link
se você enfrentar esse problema no mac, basta abrir o monitor de atividades e forçar bastante o python e tente novamente
Caso você esteja usando o terminal de tela do VSC, o erro pode ser devido ao fato de você já executar o servidor em algum outro shell.
Basta clicar na caixa de seleção à esquerda do sinal + no cabeçalho do terminal do VSC e selecionar outro shell e verificar se o servidor já está em execução no local. Saia desse servidor e você estará pronto para iniciar outro servidor.
sudo lsof -i tcp:8000
e matar os IDs do processo que aparecem.