Windows 7에서 nodejs로 작성된 서버를 테스트 중이며 명령 줄에서 테스터를 실행하려고하면 다음 오류가 발생합니다.
Error: listen EADDRINUSE
at errnoException (net.js:614:11)
at Array.0 (net.js:704:26)
at EventEmitter._tickCallback (node.js:192:40)
재부팅하지 않고 어떻게 고칠 수 있습니까?
답변
이는 서버를 바인딩하려는 주소가 사용 중임을 의미합니다. 다른 포트를 시도하거나 해당 포트를 사용하여 프로그램을 닫으십시오.
답변
운영:
ps -ax | grep node
다음과 같은 내용이 표시됩니다.
60778 ?? 0:00.62 /usr/local/bin/node abc.js
다음을 수행하십시오.
kill -9 60778
답변
Linux에서 (최소한 Ubuntu 파생 제품)
killall node
이 양식보다 쉽습니다.
ps | grep <something>
kill <somepid>
포트를 보유한 고아가있는 경우에는 둘 다 작동하지 않습니다. 대신 다음을 수행하십시오.
netstat -punta | grep <port>
포트가 보류중인 경우 다음과 같은 내용이 표시됩니다.
tcp 0 0.0.0.0:<port> 0.0.0.* LISTEN <pid>/<parent>
이제 pid로 죽여라.
kill -9 <pid>
답변
다음 명령은 실행중인 노드 프로세스 목록을 제공합니다.
ps | grep node
해당 포트를 해제하려면 다음을 사용하여 프로세스를 중지하십시오.
kill <processId>
답변
EADDRINUSE
응용 프로그램에서 사용하려는 포트를 다른 프로세스에서 사용하고 있기 때문에 오류가 발생 합니다. 이 포트를 해제하려면 점유 프로세스를 종료해야합니다.
당신이에 있기 때문에 윈도우 , 명령 프롬프트를 사용하여 프로세스를 종료 할 수 있습니다 ( cmd
). 이랑cmd
차단 응용 프로그램의 프로세스 ID (PID)를 찾을 수 있습니다. 프로세스를 종료 / 종료하려면 PID가 필요합니다.
다음은 단계별 가이드입니다 …
-
지정된 포트에서 실행중인 모든 프로세스를 찾습니다 (이 예에서 포트는 “3000”).
netstat -ano | “: 3000″찾기
-
이
netstat
명령은 지정된 포트에서 실행중인 모든 프로세스를 나열합니다.netstat
결과 의 마지막 열 에서PID
s를 볼 수 있습니다 (이 예에서 PID는 “8308”).PID
다음 명령을 실행하여 특정 항목 에 대해 자세히 알아볼 수 있습니다 .작업 목록 / fi “pid eq 8308”
-
프로세스를 종료하려면 다음 명령을 사용하여 수행 할 수 있습니다
PID
(이 예에서 PID는 “8308”).taskkill / pid 8308 / f
스크린 샷
답변
오류 오류가 발생하면 EADDRINUSE 수신,
다음 셸 명령을 실행 해보십시오.
netstat -a -o | grep 8080
taskkill /F /PID 6204
나는 grep
내 서버가 포트 8080에서 실행되고 있다는 것을 알고 있기 때문에 8080을 ed. ( static
내가 시작할 때 알려줍니다 : ‘serving “.”at http://127.0.0.1:8080 ‘.) 다른 것을 검색해야 할 수도 있습니다. 포트.
답변
서버가 실행 중이라고 가정하십시오. port 3000
lsof -i tcp:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 11716 arun 11u IPv6 159175 0t0 TCP *:3000 (LISTEN)
그 사용 후 kill -9 <pid>
위의 경우 sudo kill -9 11716