본문 바로가기
Dev/etc

linux killall node command use in windows taskkill /f /im node.exe Starting inspector on 127.0.0.1:9229 failed: address already in use 에러 해결방법

by 허연동백hipublic2020 2023. 8. 29.

목차

    VScode 사용 중 'address already in use' 에러 해결 방법

    이제는 개발 환경을 구성하고 코드를 작성하는 것이 어렵지 않습니다. 그러나 때로는 예상치 못한 문제가 발생할 수 있습니다. 그 중 하나가 'address already in use' 에러일 것입니다. 이 글에서는 VSCode를 사용하면서 이러한 에러가 발생한 경우 해결 방법을 안내해 드리겠습니다.

    linux killall node command use in windows taskkill /f /im node.exe Starting inspector on 127.0.0.1:9229 failed: address already in use


    안녕하세요, 여러분! 오늘은 개발 과정에서 종종 마주치는 문제 중 하나인 'address already in use' 에러에 대해 이야기하려고 합니다. 이 문제는 주로 VSCode에서 개발을 진행하면서 발생하는데요, 이 에러가 왜 발생하며 어떻게 해결할 수 있는지 살펴보겠습니다.

    에러 메시지: Starting inspector on 127.0.0.1:9229 failed: address already in use

    이 에러 메시지는 대부분의 경우 서버나 디버깅 도구를 실행하려고 할 때 나타납니다. 주로 127.0.0.1(로컬 호스트)의 9229 포트를 사용하려고 할 때 이미 해당 포트를 다른 프로세스가 사용 중이라는 것을 의미합니다.

    Windows Machine: 해결 방법

    이러한 에러를 해결하기 위해 여러 가지 방법을 시도해볼 수 있습니다.

    1. taskkill 명령어 사용

    먼저, Windows 환경에서는 이미 사용 중인 프로세스를 종료하는 데에 taskkill 명령어를 사용할 수 있습니다. 다만, 강제 종료를 위해 /f 옵션을 함께 사용해야 합니다. 아래와 같이 명령 프롬프트에서 실행해 보세요.

    C:\Work>taskkill /f /im node.exe

    위 명령어는 node.exe 프로세스를 강제로 종료합니다. 만약 다른 Node 프로세스가 실행 중인 경우에도 같은 방식으로 종료할 수 있습니다.

    2. 특정 포트에 해당하는 프로세스 종료

    만약 특정 포트에 해당하는 프로세스만 종료하고 싶다면, 해당 포트를 사용 중인 프로세스의 ID를 찾아서 강제 종료할 수 있습니다. 아래와 같이 명령어를 실행하여 프로세스 ID를 확인한 후, 해당 ID를 이용하여 프로세스를 종료할 수 있습니다.

    C:\>netstat -ano | find "LISTENING" | find "8080"

    위 명령어는 8080 포트를 사용 중인 프로세스의 ID를 찾아줍니다. 그 후에는 아래와 같이 해당 프로세스 ID를 사용하여 종료할 수 있습니다.

    C:\>taskkill /f /pid 14828

    위 명령어에서 /f 옵션은 강제 종료를 의미합니다.

    3. SIGKILL 또는 -9 사용

    Linux 환경에서는 killall 명령어를 사용하여 모든 Node 프로세스를 종료할 수 있습니다. 만약 모든 프로세스가 종료되지 않는 경우, -9 옵션을 추가하여 SIGKILL 시그널을 보내 강제 종료할 수 있습니다. 아래와 같이 실행해 보세요.

    killall -9 node

    또한, 특정 포트에 해당하는 프로세스를 종료하고자 할 때는 netstat 명령어를 통해 해당 포트를 사용 중인 프로세스의 ID를 확인하고, 해당 ID를 사용하여 프로세스를 종료할 수 있습니다.

    마무리

    이상으로, VSCode에서 'address already in use' 에러를 해결하는 몇 가지 방법에 대해 살펴보았습니다. 이러한 문제는 개발 과정에서 자주 마주치는 문제 중 하나이지만, 단계별로 차근차근 따라가면 쉽게 해결할 수 있습니다. 여러분의 개발 환경이 원할하게 돌아가도록 이러한 유용한 정보들을 활용해 보시기 바랍니다.


    Linux machine: 환경에서의 해결 방법

    Linux 환경에서도 'address already in use' 에러를 해결하는 방법은 크게 다르지 않습니다. 다만 몇 가지 추가 정보를 제공해 드리겠습니다.

    모든 Node 프로세스 종료

    Linux에서도 Windows와 마찬가지로 모든 Node 프로세스를 종료할 수 있습니다. 다만, 사용 가능한 시그널이 다를 수 있습니다. 기본적으로는 SIGTERM 시그널을 사용하지만, SIGKILL이 필요한 경우도 있습니다. 아래 명령어를 사용하여 모든 Node 프로세스를 종료해 보세요.

    killall node

    만약 모든 프로세스가 종료되지 않는 경우, -9 옵션을 사용하여 SIGKILL 시그널을 보내 강제 종료할 수 있습니다.

    killall -9 node

    특정 포트에 해당하는 프로세스 종료

    특정 포트에 해당하는 프로세스를 종료하려면 netstat 명령어를 사용하여 해당 포트를 사용 중인 프로세스의 PID를 확인한 후, 해당 PID를 사용하여 프로세스를 종료할 수 있습니다. 아래와 같이 실행해 보세요.

    $ netstat -nlp | grep :8080

    위 명령어는 8080 포트를 사용 중인 프로세스의 PID를 확인해 줍니다. 그 후에는 아래와 같이 해당 PID를 사용하여 프로세스를 종료할 수 있습니다.

    $ kill 1073

    만약 프로세스가 종료되지 않는 경우, -9 플래그를 사용하여 SIGKILL 시그널을 보내 강제 종료할 수 있습니다.

    $ kill -9 1073

    마무리

    이상으로, Linux 환경에서의 'address already in use' 에러를 해결하는 방법에 대해 알아보았습니다. Linux에서도 Windows와 마찬가지로 프로세스를 종료하거나 특정 포트에 대한 프로세스를 찾아 종료할 수 있습니다. 이러한 명령어를 통해 원활한 개발 환경을 유지할 수 있을 것입니다.


    참고자료:

     

    stop all instances of node.js server

    This is my first time working with Node.js and I ran into this problem: I have started a Node server through the plugin of an IDE. Unfortunately, I cannot use the IDE's terminal. So I tried to run...

    stackoverflow.com

    반응형

    댓글