파일런:서비스를 제공하려고 할 때 이미 사용 중인 주소
문제
저는 pylons를 운영하고 있으며 다음과 같이 했습니다.파스터 서버 개발. ini 실행 중 : 5000
그러나 명령을 다시 실행하려고 하면 다음과 같습니다.파스타 서브 development.ini
다음 메시지가 나타납니다.소켓 오류:[Errno 98] 이미 사용중인 주소입니다.
어떤 아이디어가 있나요?
해결책
일반적으로 이는 여전히 실행 중임을 의미하지만 데몬 모드인 경우에만 발생합니다.시작한 후 명령 프롬프트가 표시됩니까, 아니면 Ctrl-C를 눌러 중지해야 합니까?
명령 프롬프트가 다시 나타나면 데몬 모드이므로 다음 명령으로 중지해야 합니다.
paster server development.ini stop
Ctrl-C(물론 Ctrl-Z는 아님)로 중지했다면 잘 모르겠습니다.
다른 팁
포럼 에서이 트릭을 찾았습니다.
이것은 포트 5000을 듣고 모든 프로그램을 죽일 것입니다
kill -9 `fuser -n tcp 5000`
당신의 질문을 이해할 때, 당신은 포트 5000에서들을 수있는 신청서를 시작합니다. 그런 다음 그것을 멈추지 않고 (?), 당신은 다른 인스턴스를 시작하여 같은 포트에서들을 수 있습니까? 그렇다면 성공하지 못할 것입니다.
사용하여 어떤 응용 프로그램을 듣고 있는지 항상 확인할 수 있습니다. netstat
(Windows와 Unix와 같은 시스템의 경우 다른 사람들과 경험이 없습니다).
이것은 서버가 예기치 않게 사망했을 때 나에게도 일어 났으며 소켓이 올바르게 닫히지 않았습니다. 기본적으로 소켓은 프로세스가 사망했지만 여전히 운영 체제와 함께 열려있는 것으로 표시됩니다. 30-60 초 동안 기다리면 OS가 관련 프로세스가 죽었다는 사실을 알게되고 소켓을 자동으로 정리합니다.
기본 포트 8080이 사용 중입니다. 포트 10000을 가져 가려면 명령 후 '-p 100000'을 추가해야합니다.
당연히 netstat
(netstat -an | grep 5000
Linux에서 트릭을 수행합니다). 항구를 잡을 것입니다
그러나 나는 같은 오류 로이 다른 질문을 발견했습니다.
Python [Errno 98] 주소는 이미 사용 중입니다
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
본질적으로 파이썬은 소켓을 열는 데 너무 오래 걸립니다.
나는 여기에 모든 upvoted 답변이 존재했지만 아무도 나를 위해 일하지 않습니다. 그러나 아래의 명령은 트릭을 수행합니다.
sudo kill $(sudo lsof -t -i:5000)
이것은 항구에서 듣는 과정을 죽일 것입니다. 5000
.