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 |
---|