포트에서 실행 중인 프로세스를 종료하는 방법

Node.js 및 기타 언어에서는 특정 포트에서 스크립트를 실행하는 것이 일반적입니다. 포트를 사용하거나 사용하지 않을 수 있으므로 다음 오류가 발생하는 것도 일반적입니다.

    Error: listen EADDRINUSE: address already in use :::3000
    at Server.setupListenHandle [as _listen2] (net.js:1318:16)
    at listenInCluster (net.js:1366:12)
    at Server.listen (net.js:1452:7)
    at Function.listen (/application.js:618:24)
    at file:///httpdocs/index.js:149:5
    Emitted 'error' event on Server instance at:
        at emitErrorNT (net.js:1345:8)
        at processTicksAndRejections (internal/process/task_queues.js:80:21) {
        code: 'EADDRINUSE',
        errno: -98,
        syscall: 'listen',
        address: '::',
        port: 3000
    }


이 오류는 현재 포트 3000에서 실행 중인 무언가가 있으므로 사용할 수 없음을 나타냅니다. 다행히도 이것은 수정하기가 매우 쉽습니다.

리눅스와 맥



Linux 또는 Mac에서 이 문제를 해결하려면 먼저 현재 포트에서 실행 중인 프로세스 ID 또는 PID를 찾아야 합니다(이 경우: 3000). 이를 위해 lsof 를 사용할 수 있습니다. lsof를 기억하는 방법을 원한다면 '~의 목록'을 의미하는 것입니다.

    lsof -i :3000


이렇게 하면 포트 3000에서 실행 중인 프로세스가 반환됩니다. 다음 단계는 해당 포트에서 프로세스를 종료하는 것입니다. PID를 기록한 후 다음 명령을 실행하여 [PID]를 PID로 바꿉니다.

    kill -15 [PID]


왜 -15인가? -15는 컴퓨터가 보낼 메시지를 나타냅니다. 처음에는 -15를 시도해야 합니다. 이렇게 하면 포트 3000이 정상적으로 종료되기 때문입니다. 그래도 작동하지 않으면 다음을 시도하십시오.

    kill -9 [PID]


이제 포트 :3000에서 실행 중인 것이 없습니다. 이는 문제가 있는 다른 포트(예: :8080, :1337 또는 기타 번호)에서도 작동합니다.

Windows 사용자의 경우



모든 Windows 사용자에게는 약간 다르지만 유용할 수도 있으므로 여기에 넣었습니다. 먼저 찾고 있는 포트(예: 3000)에서 실행 중인 항목을 찾습니다. PID는 이 프로세스를 실행할 때 줄 끝에서 찾을 수 있습니다.

    netstat -ano | findstr :3000


그런 다음 Linux 및 Mac과 유사하게 해당 포트에 있는 것을 종료하고 PID를 위의 명령문에서 해당 프로세스의 PID로 바꿉니다.

    taskkill /PID PID /F

좋은 웹페이지 즐겨찾기