Web server failed to start. Port 8080 was already in use.

 

0. 문제의 발단 - 프로세스를 죽이지 않고 인텔리제이 종료

인텔리제이를 종료할 때 인텔리제이의 프로세스가 실행 중이라

실행 중인 프로세스를 종료할지 Disconnect 버튼을 통해 그냥 Intellij만 종료할지를 묻는 화면이 나온다. 

이때 Disconnect를

 

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8080 was already in use.

Action:

Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.


Process finished with exit code 1

 

 

이미 다른 곳에서 8080 포트를 사용 중이라고 나옵니다.

기존에 죽이지 않은 프로세스에서 해당 포트를 사용 중이기 때문에

서버 실행이 안 되는 문제가 발생합니다.

이때 아래의 방법으로 해당 프로세스를 종료시킬 수 있습니다.

 

1. PID 확인하기 

먼저 강제 종료를 시키려면 어느 프로세스에서 8080 포트를 사용 중인지 확인해야 합니다.

찾는 방법은 아래와 같이 cmd 화면에서 

netstat 명령어를 통해 특정 포트를 사용하고 있는 프로그램의  PID를 확인할 수 있습니다.

이때 cmd 콘솔창은 관리자 권한으로 실행시켜야 합니다.

netstat -anbo 명령어를 사용하여 원하는 값을 얻을 수 있고
더 많은 netstat 명령어는 netstat --help 혹은 netstat -? 를 통해 확인 가능합니다.

C:\Windows\System32>netstat -anbo

활성 연결

  프로토콜  로컬 주소              외부 주소              상태            PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1232
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 소유권 정보를 가져올 수 없습니다.
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       6600
 [mysqld.exe]
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       12412

이때 너무 많은 결과가 나와서 원하는 결과를 찾기 힘들다면 find 명령어를 통해 특정 텍스트를 포함하는 결과만 출력되게 할 수 있습니다.

find 명령어는  linux의 grep과 유사한데 find "찾을 문자"와 같이 "를 통해 입력합니다.
C:\Windows\System32>netstat -anbo | find "8080"
  TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       47388
  TCP    [::]:8080              [::]:0                 LISTENING       47388

 

이렇게 해서  PID 확인을 완료했습니다.

 

2-1. cmd를 통한 프로세스 kill 

이제 PID를 획득했으니 taskkill이라는 명령어를 통해 특정 프로세스를 종료시킬 수 있습니다.

 

taskkill /pid 포트번호
특정포트번호의 프로세스를 종료시킵니다.

 

 

C:\Users\chris>taskkill /pid 47388
오류: 프로세스(PID 47388)를 종료할 수 없습니다.
원인: 이 프로세스는 /F 옵션을 사용하여 강제로 종료해야 합니다.

해당 프로세스를 종료시켜도 문제가 발생하지 않는다는 것을 알고 있으니 강제 종료를 시켜줍니다.

 

taskkill /pid 포트번호 /f
/f 강제 종료 옵션
옵션을 통해 권한 등의 문제로 인해 간혹 종료시킬 수 없을 때 강제로 종료할 수 있게 해 줍니다.
C:\Users\chris>taskkill /pid 47388 /f
성공: 프로세스(PID 47388)가 종료되었습니다.

 

 

2-2. 작업관리자 이용해서 프로세스 종료하기

cmd 가 아닌 윈도의 작업관리자를 통해서도 프로세스를 종료할 수 있습니다.

기본적으로 작업관리자에서는 PID 가 나오지 않기 때문에 위 필드명 부분에서 우클릭하여 PID를 체크해 줍니다.

 

여기서도 수많은 프로세스로 인해 원하는 프로세스를 찾기 힘들기 때문에 PID를 한번 눌러 PID 기준으로 정렬한 후 

해당 PID 를 통해 프로세스를 찾은 후 우클릭하여 작업 끝내기로 프로세스를 종료시켜 줍니다.

 

사실 이 모든 과정이 번거로우니 

cmd에서 전부 해결합시다.

 

3. 결과 확인

서버 다시 실행해 보면 정상적으로 구동되는 것 확인 완료

'Window' 카테고리의 다른 글

window openssl 설치하기  (1) 2024.06.25

+ Recent posts