Pilares: endereço já em uso ao tentar servir
Pergunta
Estou correndo postes e eu fiz isso: development.ini servidor paster Está funcionando em: 5000
Mas quando tento executar o comando novamente: paster servir development.ini
eu recebo essa mensagem: socket.error: [Errno 98] Endereço já em uso
Todas as idéias?
Solução
Normalmente, isso significa que é ainda em execução, mas isso só deve acontecer se ele está em modo de daemon. Depois que você começou, você recebe um prompt de comando, ou você tem que parar com Ctrl-C?
Se você receber um prompt de comando de volta é o modo deamon e você tem que pará-lo com
paster server development.ini stop
Se parou-a com Ctrl-C (e não Ctrl-Z é claro), eu não tenho idéia.
Outras dicas
Eu encontrei este truque em um fórum:
Isso irá matar todos os programas de ouvir a porta 5000
kill -9 `fuser -n tcp 5000`
Como eu entendi sua pergunta, você iniciar algum aplicativo para escutar na porta 5000. Em seguida, sem interrompê-lo (?), Você tenta iniciar outra instância para escutar het mesma porta? Se assim for, você não terá sucesso.
Você sempre pode verificar qual aplicativo está escutando o número da porta usando netstat
(para Windows e UNIX-like sistemas, eu não tenho nenhuma experiência com os outros).
Isso também aconteceu comigo quando o servidor morreu inesperadamente, e não fechar-lo da tomada é adequada. Essencialmente, o socket ainda está listado como aberto com o sistema operacional, mesmo que o processo tenha morrido. Eu encontrei se eu esperar por 30-60 segundos, o sistema operacional irá realizar o processo associado morreu, e limpeza das tomadas automaticamente.
sua porta padrão 8080 está usando. você deve adicionar '-p 10000' após o comando para tirar porta 10000
naturalmente netstat
(netstat -an | grep 5000
faz o truque no linux). Vai agarrar a porta ??p>
No entanto eu encontrei essa outra questão com o mesmo erro.
Python [Errno 98] Endereço já em uso
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Essencialmente Python leva muito tempo para abrir o socket.
Eu tentei todas as respostas upvoted existe aqui, mas ninguém trabalha para mim. Mas isso abaixo comando faz o truque.
sudo kill $(sudo lsof -t -i:5000)
Este mataria o processo que escuta na 5000
porta.