Tomcat 서버를 사용할 때 생기는 서버 오류이다. 오류에 대한 설명은 아래와 같다.
Several ports (8005, 8080) required by Tomcat v9.0 Server at localhost are already in use.
The server may already be running in another process, or a system process may be using the port.
To start this server you will need to stop the other process or change the port number(s).
서버를 Run 했을 때 이런 경고창과 함께 발생한다.
이 오류의 원인은 이미 (8005, 8080) 포트를 다른 톰캣서버에서 사용하고 있기 때문에 발생한다.
다른 프로젝트에서 서버를 동작시키고 끄지 않았을 때 발생하는 오류인 것이다.
해결 방법은 3가지이다.
① IDE에서 직접 종료
② 작업관리자로 강제 종료
③ 명렴 프롬프트를 통해 종료
차례대로 알아보자.
1. IDE에서 직접 서버 종료
어떤 프로젝트에서 실행하고 있었는지 기억하고 있다면, 그 IDE를 통해 작업공간에 다시 접속해보자.
접속해서 서버 콘솔을 클릭하고 실행되고 있는 지 확인한 후 (실행되고 있다면 started라고 적혀있을 것이다.)
만약 서버가 돌아가고 있다면, 우클릭 stop만 눌러도 다른 프로젝트에서 톰캣서버를 사용할 수 있게 된다.
2. 작업관리자로 서버 강제 종료
ctrl + alt + Delete 를 눌르고 작업관리자를 선택하자.
Apache Commons Deamon Service Runner 라는 이름을 가진 프로그램이 돌아가고 있을 것이다.
선택하고 작업 끝내기를 클릭하면 해결된다.
3. cmd에서 CLI 명령어로 해결
관리자권한으로 cmd를 윈도우 검색해 명럼 프롬프트를 열고 아래 명령어를 입력하자.
netstat -p tcp -ano
포트에 연결된 pid를 확인하기 위해 사용하는 명령어이다.
- 결과
활성 연결
프로토콜 로컬 주소 외부 주소 상태 PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1148
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:902 0.0.0.0:0 LISTENING 4600
TCP 0.0.0.0:912 0.0.0.0:0 LISTENING 4600
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 5264
TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING 9696
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:7680 0.0.0.0:0 LISTENING 2528
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4116
TCP 0.0.0.0:14430 0.0.0.0:0 LISTENING 11732
TCP 0.0.0.0:14440 0.0.0.0:0 LISTENING 11732
TCP 0.0.0.0:19812 0.0.0.0:0 LISTENING 10176
TCP 0.0.0.0:21300 0.0.0.0:0 LISTENING 19576
TCP 0.0.0.0:27036 0.0.0.0:0 LISTENING 10896
TCP 0.0.0.0:33060 0.0.0.0:0 LISTENING 5264
TCP 0.0.0.0:47546 0.0.0.0:0 LISTENING 3436
TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING 952
위와 같은 결과가 나올텐데 여기에서 로컬주소가 8005나 8080인 것을 찾으면 된다.
PID를 보면 4116으로 되어있다. 이제 이 피드를 종료시키면 된다.
taskkill /f /pid 4116
task를 kill하는 명령어이다.
성공: 프로세스(PID 4116)가 종료되었습니다.
성공적으로 종료되면 위와 같은 메세지가 발생한다.
** 주의 **
관리자 권한으로 열지 않으면 아래와 같은 오류가 발생하니 주의하자.
오류: 프로세스(PID 4116)를 종료할 수 없습니다.
원인: 액세스가 거부되었습니다.