localhost의 Tomcat Server에 필요한 여러 포트 (8005, 8080, 8009)가 이미 사용 중입니다


258

Eclipse의 Tomcat에서 간단한 JSP 프로그램을 실행하려고하면 다음 오류가 발생합니다.

localhost의 Tomcat v6.0 Server에 필요한 여러 포트 (8005, 8080, 8009)가 이미 사용 중입니다. 서버가 이미 다른 프로세스에서 실행 중이거나 시스템 프로세스가 포트를 사용 중일 수 있습니다. 이 서버를 시작하려면 다른 프로세스를 중지하거나 포트 번호를 변경해야합니다.

이 문제는 어떻게 발생하며 어떻게 해결할 수 있습니까?


비슷한 문제가있어 Windows 방화벽으로 판명되었습니다.
James Oravec

아마도 언데드 프로세스가 바람둥이를 살아있게 할 것입니다. 프로세스의 ID를 찾아서 종료하거나 시스템을 다시 시작하여 프로세스를 종료하십시오.
Felipe Leão

이 명령을 사용하여 명령 콘솔에서 이미 실행중인 Tomcat 서비스를 중지 할 수 있습니다. netstat -ano | findStr 8080실행중인 서비스를 찾은 다음 프로세스 ID를 찾고 pid를 복사하고 다음과 같이 명령을 다시 실행하십시오.taskkill /F /PID pid_number
Mdhar9e

답변:


473

이미 실행중인 Tomcat의 다른 인스턴스가 있습니다. http://localhost:8080웹 브라우저 로 이동 하여 Tomcat 기본 홈 페이지 또는 Tomcat 관련 404 오류 페이지가 있는지 확인할 수 있습니다. 둘 다 Tomcat이 잘 작동한다는 동일한 증거입니다. 그렇지 않은 경우 브라우저 별 HTTP 연결 시간 초과 오류 메시지가 표시됩니다.

종료해야합니다. /binTomcat 설치 폴더의 하위 폴더로 이동 하여 shutdown.bat(Windows) 또는 shutdown.sh(Unix) 스크립트를 실행하십시오 . 헛, 가까운 Eclipse에서 다음하다면 작업 관리자를 열고 모든 죽일 java및 / 또는 javaw프로세스를.

또는 실제로 어떤 이유로 Windows 서비스로 설치 한 경우 (즉, 프로덕션 용으로 개발 중일 때 도움이되지 않음) 서비스 관리자 ( 시작> 실행> services.msc )를 열고 Tomcat 서비스를 중지하십시오. 필요한 경우 Windows 서비스를 모두 제거하십시오. 개발을 위해서는 ZIP 파일만으로 충분합니다.

또는 실제로 Tomcat의 두 인스턴스를 동시에 실행하려는 경우 다른 포트에서 수신하도록 두 번째 인스턴스를 구성해야합니다. 자세한 내용은 Tomcat 설명서를 참조하십시오.


1
완벽 해, 이것은 나를 영원히 괴롭혔다. sh shutdown.sh/ bin 디렉토리의 터미널에서 와 같이 실행했습니다 .
Danny Englander

2
안녕하세요 BalusC, 난 당신을 좋아합니다! shutdown.batbin 폴더에 없습니다 . Tomcat은 우편이 아닌 서비스로 설치되었습니다. 서비스에서 Tomcat 서비스를 중지하면 문제가 해결되었습니다. 감사. Chenqui.
Erran Morad

1
@Borat : 천만에요. 실제로 서비스를 제거하고 zip을 얻는 것이 더 좋습니다.
BalusC

6
"모든 java 및 / 또는 javaw 프로세스를 종료하십시오".
Thariq Nugrohotomo

3
열기 system monitortask manager하고 사용하는 자바 프로세스를 죽이는 about 400 MB이상 RAM도 문제가 해결됩니다. 무의식적으로 프로세스를 예약 중입니다.
viper

55
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • Eclipse를 다시 시작할 필요가 없습니다.
  • 위의 오류가 발생하면 터미널 에이 줄을 입력하십시오.
  • 다시 Eclipse에서 바람둥이를 시작하십시오.
  • Linux 기반 시스템에서만 작동합니다 (Ubuntu ..etc)

6
이것은 더kill $(ps -aef | grep java | grep apache | awk '{print $2}')
firesofmay

이것은 나를 위해 작동하지 않습니다 (Mint 17.1). 그것은 단지 kill명령에 대한 도움을줍니다 .
Deleet

이것은 나를 위해 일했습니다. 그러나 2 개의 인스턴스가 실행 중인지 알고 싶고이 방법을 사용하여 하나를 강제로 중지해야한다는 것을 알고 싶습니다. 감사합니다
Gautam

29

Windows에서 실행중인 경우 명령 행 프롬프트에서이를 시도하십시오.

netstat -ano

사용중인 모든 포트와 해당 포트를 사용중인 프로세스의 프로세스 ID PID #이 표시됩니다. 그런 다음 Ctrl+ Alt+를 Del누르고 작업 관리자를 열어 어떤 프로세스인지 확인하십시오.

그런 다음 닫거나 중지하거나 다른 포트를 사용하도록 서버를 구성하도록 선택할 수 있습니다. 새로 선택한 포트 (8010)를 사용할 수 있는지 확인하려면 다음을 수행하십시오.

netstat -ano | grep 8010

줄을 반환하지 않으면 괜찮습니다.

포트를 변경하려면 서버보기로 이동하여 server.xml을 열고 포트를 변경하십시오. 내 항목은 다음과 같습니다.

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"

작업 관리자를 열지 않고도이를 자동화하기 위해 PowerShell 스크립트가 포함 된 새로운 답변을 참조하십시오.
Xharlie

1
findstrgrep이없는 사람들을 위해.
eckes

25

당신이 맥 환경에 있다면, 여기 내가 한 일이 있습니다.

터미널에서이 포트에서 실행중인 프로세스 ID를 찾으십시오 (예 : 8080).

lsof -i :8080

그것을 죽여라 :

kill -9 <PID>  

예:

다음과 같은 결과가 나타날 수 있습니다.

MacSys:bin krunal.$ lsof -i :8080

COMMAND   PID     USER   FD   TYPE     DEVICE  SIZE/OFF   NODE  NAME
java     21347   krunal  52u  IPv6      XXX      0t0      TCP  *:http-xxx (LISTEN)

그것을 죽여라 : ( kill -9 21347)


20

이미 Eclipse에서 Tomcat 서버를 실행하는 데 사용되는 포트를 해제하는 단계

예를 들어 8080 포트를 사용한다고 가정하면 바람둥이를 실행하려면 8080을 무료로 만들어야합니다.

1 단계:

C : \ Users \ username> netstat -o -n -a | findstr 0.0 : 8080

TCP 0.0.0.0:3000 0.0.0.0:0 듣기 3116

이제 LISTENING 포트가 8080의 3116임을 알 수 있습니다.

이제 3116을 죽여야합니다

2 단계:-

C : \ 사용자 \ 사용자 이름> taskkill / F / PID 3116

3 단계 : Eclipse로 이동하여 서버를 시작하면 실행됩니다.


14

Eclipse를 사용하는 경우 서버를 두 번 클릭하고 Tomcat 서버를 두 번 클릭하면 하나의 파일이 열립니다. 해당 파일에서 HTTP 포트를 다른 포트 번호로 변경하고 저장 ( Ctrl+ S) 한 다음 서버를 다시 시작하십시오.


다른 솔루션은 그렇지 않은 동안 이것은 나를 위해 일했습니다. Mint 17.1을 사용하고 있습니다. apt-get이 설치된 폴더를 찾을 수 없으므로 Eclipse와 apt-get을 통해 tomcat을 설치해야했습니다. 아마 두 가지 이유가있을 것입니다. 여전히 kill 명령으로 첫 번째 것을 닫을 수 없었습니다.
Deleet

12

이클립스가 말한다면

localhost의 Tomcat v6.0 Server에 필요한 여러 포트 (8005, 8080, 8009)가 이미 사용 중입니다

이 오류는 Tomcat이 백그라운드에서 실행 중일 수 있으므로 먼저 해당 서버를 중지하십시오. 아래 세부 정보를 따르십시오.

해결책은 다음과 같습니다.

  1. "콘솔"보기를여십시오 (창->보기보기-> 콘솔).
  2. 그런 다음 Tomcat 서버를 중지하십시오.
  3. 그런 다음 "서버"보기를 열고 작동 할 서버를 시작하십시오.

감사!


이것은 나를 위해 일했습니다. 나는 시도했다 : sudo service tomcat stop
Emiliano Sangoi

10

"Tomcat 포트"(내 경우에는 8088 포트)를 사용하는 다른 프로세스를 실행하지 않는 Tomcat의 다른 인스턴스가 없습니다. Eclipse는 Tomcat을 시작할 때 동일한 메시지를 보냅니다.

.... 서버가 이미 다른 프로세스에서 실행 중이거나 시스템 프로세스가 포트를 사용 중일 수 있습니다. 이 서버를 시작하려면 다른 프로세스를 중지하거나 포트 번호를 변경해야합니다.

이런 식으로 문제를 해결합니다.

  • 프롬프트로 바람둥이 통으로 이동
  • startup.bat를 시작하십시오.
  • shutdown.bat를 시작하십시오.
  • 이클립스에 의해 바람둥이를 시작

1
내 문제는 8005 및 8009 포트가 사용 중이지만 8080 포트가 비어 있었고 그 당시 Tomcat 설치가 실행되지 않았다는 것입니다. 귀하의 솔루션 이이 문제를 해결하는 데 도움이되었습니다. 감사합니다.
Benas

7

모든 제안 된 답변을 읽은 후 포트가 이미 사용 중이라는 것을 알았습니다. Eclipse의 서버 탭에서 Tomcat을 두 번 클릭하면 개요 정보가 열리고 포트 정보가 나타납니다. 내 포트가 8009 포트이므로 서버를 시작하는 동안 오류가 발생하여 충돌하는 포트를 변경했습니다. 8008로 변경했으며 정상적으로 작동합니다. 변경된 포트를 사용하지 않을 경우 서버를 시작해보십시오.


6

1 단계 : netstat -a -o -n 네트워크 목록을 표시하고 127.0.0.1:8080과 같은 로컬 주소를 검색하고 PID를 기록합니다 (eq 3624).

C:\>netstat -a -o -n

2 단계 : 에서 taskkill / F / PID 3624 . 이 명령을 실행하여 해당 프로세스를 종료하십시오.

C:\>taskkill /F /PID 3624

게시 할 링크


이 두 줄을 자동화하는 PowerShell 스크립트를 포함하는 새로운 답변을 참조하십시오.
Xharlie

5

Windows 에서 이미 실행중인 Tomcat 인스턴스를 중지하는 명령 사용 하고 일식에서 다시 실행 해보십시오.

net stop tomcat7 

또는 다른 포트에서 실행하려는 경우 서버의 XML에서 포트를 변경할있습니다 .


4

문제를 해결하는 쉬운 방법 :

서버가 이미 다른 프로세스에서 실행 중이거나 시스템 프로세스가 포트를 사용 중일 수 있습니다. 해당 포트를 종료하려면 다음을 수행하십시오.

1) 다음 링크에서 TCPView (285kb 만 )를 다운로드 하십시오.

http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

2) 폴더를 추출하고 TCPView 응용 프로그램을 시작하십시오 .

3) java.exe를 마우스 오른쪽 단추로 클릭하고 (8009,8005 포트는 Java 프로세스에서 일반적으로 사용되므로) 프로세스 종료 옵션을 선택하십시오 .

이것은 다른 프로세스를 쉽게 멈출 것입니다 ..

참고 : TOMCATPATH ​​/ bin / shutdown.bat를 실행 하면 일부 악마 또는 관리되지 않는 스레드가 포함 된 Tomcat이 종료되지 않을 수 있습니다. 이러한 경우 TCPView 는 문제없이 작동합니다.


2

Eclipse에서 Java EE가 예상되고 디버그 모드에서 Eclipse에서 Tomcat 서버를 시작하려고하면 이러한 오류가 발생합니다. Eclipse에서 예상 디버그로 전환해야합니다. 나는 이런 식으로 내 문제를 해결했다.


2

@BalusC가 제안한 shutdown.bat를 시도한 후에도 포트가 해제되지 않으면 javaw 프로세스를 종료 할 수 있습니다. 다음 단계를 수행하십시오.

  1. 시작 메뉴를 클릭하고 "Windows powershell"을 엽니 다
  2. 열기 전에 마우스 오른쪽 버튼을 클릭하고 "관리자 권한으로 실행"을 선택하십시오.
  3. ps 명령을 입력하십시오. 다음과 같이 이미지가 표시 될 수 있습니다. 현재 운영 상태를 보여주는 Powershell

  4. 프로세스 "javaw"의 프로세스 번호를 참조하십시오. 프로세스 번호는 열에서 가장 오른쪽에있는 숫자입니다. 예를 들어 javaw의 이미지 프로세스 번호에서 강조 표시했습니다.

  5. kill 명령을 입력하십시오. javaw가 종료되었으며 이제 프로그램을 실행할 수 있어야합니다.


1
이를 자동화하기 위해 PowerShell 스크립트를 포함하는 새로운 답변을 참조하십시오.
Xharlie

2

위의 노력으로 도움이되지 않은 경우 시도 할 수있는 또 다른 옵션이 있습니다. 공유 드라이브 (예 : H :)에서 Eclipse를 사용 중일 수 있습니다 . 그렇다면 전체 Eclipse 디렉토리를 C :로 이동 / 복사 한 후 다시 시도하십시오.

Eclipse가 Tomcat 서버의 포트를 열 수 없으며 (위의 오류가 발생 함) 인터넷에 연결할 수도 없습니다. 또한 포트를 열지 못한 다른 Tomcat 플러그인 (Sysdeo)을 시도했습니다.

다음은 내가 시도한 옵션입니다.

다른 Tomcat 인스턴스 확인 및 종료

  • 명령 프롬프트 netstat -ano에서 충돌 한 포트를 사용중인 다른 프로세스가 있는지 확인하십시오.
  • PID를 찾아서 죽여라
  • 서버를 다시 시작하십시오.

Eclipse에서 Tomcat 포트 변경

  • Eclipse 서버 탭에서 Tomcat 인스턴스를 두 번 클릭하십시오. 구성 탭이 열립니다.
  • 포트에서 포트 번호를 변경하십시오. (예 : 18080).

java.exe 및 javaw 종료

인터넷에 연결되지 않은 Eclipse에 대한 다른 답변을 참조하십시오 ( https://stackoverflow.com/a/37246087/4212710 ).


2

Windows 사용자의 경우 :

CTRL + SHIFT + ESC 키 조합을 사용하여 작업 관리자로 직접 이동하십시오.

마우스 오른쪽 단추를 클릭하고 "작업 종료"를 선택하여 "java.exe"프로세스를 종료하십시오.


2

모든 답변을 확인했지만 informing only to kill PID.

모든 사람이 터미널 액세스를 공유하는 경우 PID를 죽일 권한 이 없거나 도움이되지 않습니다 .

이 경우 수행 할 수있는 작업은 다음과 같습니다.

Double click on server

Go to Overview and change ports in Ports 이처럼 :

여기에 이미지 설명을 입력하십시오


1

저에게 가장 간단한 해결책은 "서버"탭을 통해 Tomcat에서 현재 배포 된 웹앱을 삭제하는 것입니다. 일단 제거하면 문제가 해결됩니다. 실행 도구> 서버에서 실행으로 이동하여 프로젝트를 다시 배포하기 만하면됩니다.


1

종료 명령이 전송 된 경우에도 Apache Tomcat이 올바르게 종료되지 않는 경우 종종 문제가 발생합니다. 필자의 경우 Tomcat 8을 사용하면 성가신 규칙이 발생합니다. 다행히 Windows PowerShell과 netstat명령을 사용하여 프로세스를 종료하는 간단한 스크립트를 만들 수 있습니다.

다음 PowerShell 스크립트는 출력을 구문 분석하여 netstat수신 대기중인 프로세스를 찾고 127.0.0.1:8005PID를 추출한 다음 해당 프로세스를 종료합니다.

netstat -a -o -n `
 | select -skip 4 `
 | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
 | ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
 | % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }

server.xml다른 포트 또는 IP를 사용하도록 Tomcat을 구성하는 경우 그에 따라 스크립트의 네 번째 줄에서 정규식을 편집하십시오.

마지막으로, 시작 시간에 Tomcat에게 PID를 파일에 저장하도록 명령하고 스위치를 사용하여 강제로 종료하도록 지시 할 수 있기 때문에 Linux에서 상황이 더 낫다는 것을 지적해야합니다. 나중에 'nix 시스템의 종료 스크립트는 이미 프로세스를 죽일 수있는 능력 netstat은 필요하지 않습니다.


1

Windows 7 또는 10 기반 OS에서 위의 문제가 발생하면 Tomcat이 Windows 서비스로 실행 중이기 때문에 문제가 발생합니다. Windows 서비스로 실행되는 Tomcat을 중지하려면 Windows 제어판을여십시오. "Apache Tomcat"서비스를 찾아서 중지하십시오. 다른 방법은 cmd를 사용하여 포트 8080에서 실행중인 프로세스를 종료하는 것입니다.

관리자 권한으로 실행중인 cmd를 엽니 다.

  1. C : \ users \ username> netstat -o -n -a | findstr 0.0 : 8080
  2. TCP 0.0.0.0:8080 0.0.0.0:0 듣기 2160.
  3. 위의 2160은 포트 8080에서 실행중인 프로세스의 프로세스 ID이며 다음 명령
    C를 사용하여 해당 프로세스를 종료합니다. C : \ users \ username> taskkill / F / PID 2160
  4. IDE로 이동하여 서버를 시작하면 실행됩니다.

1

Tomcat 서비스를 올바르게 중지하지 않았기 때문일 수 있습니다. 이를 위해 작업 관리자를 열고javaw.exe 서비스를 볼 수 있습니다 . 먼저 그 서비스를 중지하십시오. 이제 바람둥이를 다시 시작하면 정상적으로 작동합니다.


1

제 경우에는 오류가 발생했습니다 : localhost의 Tomcat v8.0 Server에 필요한 포트 8005가 이미 사용 중입니다

apache-tomcat-8.0.39 \ conf \ server.xml에서 8005 포트를 변경했지만 변경 사항이 반영되지 않았습니다. 그런 다음 일식에서 이러한 변경을 수행했습니다. 서버를 두 번 클릭하고 포트를 8005에서 8006으로 수정하면 작동합니다. 여기에 이미지 설명을 입력하십시오

8006을 넣기 전에이 포트가 사용 가능한지 Windows 셸에서 확인했습니다. 다음 명령을 실행하여 :

netstat -a -o -n | findstr 8006

1

나는 같은 문제에 직면하고 아래 그림과 같이 답변을 검색 한 후 1. 아래와 같이 Monitor Tomcat을 엽니 다. 여기에 이미지 설명을 입력하십시오

  1. 아래 그림과 같이 중지를 누르십시오.

여기에 이미지 설명을 입력하십시오

마지막으로 많은 시험과 제안 된 해결책 후에 나와 함께 작동합니다.

감사합니다. Kerelos Mikhail


0

Eclipse에서는 "Servers"프로젝트에서 Tomcat 구성 폴더를 삭제하십시오. 나는 그것을 마지막 희망으로 시도했고 효과가있었습니다.


0

Windows의 경우 새로운 기능을 경험했습니다 ... / bin 폴더에서 tomcat을 중지하면 포트 8080이 즉시 해제되지 않습니다. 포트를 해제하는 데 약 5-10 분이 걸립니다. 10 분 후에 다시 프로젝트 실행-> 서버에서 실행을 시도하면 .. 실행할 수 있습니다.

이해가 올바른지 잘 모르겠습니다!


0

다음 블로그 "컴퓨터를 다시 시작하지 않고 바람둥이를 죽이는 방법"을 참조하십시오

http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html

이것이 미래에 누군가를 도울 수 있기를 바랍니다.


1
위의 링크가 죽었습니다. 이것은 좋은 블로그 기사를 가리킨다
dounyy

중요한 부분을 언급하지 않고 읽을 링크를 추가하지 마십시오. 사람들이 여기 있기 때문에 답을 얻습니다.
Menuka Ishan

0

프로젝트의 다른 사용자가 사용중인 것과 동일한 포트 번호를 사용하는 경우에도 발생합니다! 바람둥이 서버를 두 번 클릭하고 포트 번호를 8585 등으로 변경하십시오. 이제 코드가 실행되기 시작합니다!


0

PID를 사용하여 Windows 서비스를 종료하는 방법-

  1. 명령 프롬프트를 열고 입력 netstat -ano
  2. 사용중인 포트의 PID를 찾으십시오.이 경우 8080, 8005,8009가됩니다. 이 포트의 PID가 5760이라고 가정 해 봅시다.
  3. 이제 입력 taskkill /f /pid 5760
  4. PID가 닫히고 포트를 사용할 수있게됩니다. 이제 Windows 서비스 또는 일식으로 바람둥이를 정상적으로 시작할 수 있습니다.

감사

중지 또는 시작에 멈춰있는 Windows 서비스를 종료하십시오.


0

localhost의 Tomcat vX.X Server에 필요한 여러 포트 (8005, 8080, 8009)가 이미 사용 중입니다

다른 Tomcat 인스턴스가 이미 실행 중인지 또는 다른 프로세스가 포트를 사용 중인지 확인하려면 다음을 사용할 수 있습니다.

netstat -b -aWindows 명령 프롬프트에서. 사용중인 포트가 나열되고 각 포트를 사용하는 실행 파일이 제공됩니다. 이를 수행하려면 관리자 그룹에 있어야합니다.

다음과 같은 것을 얻을 수 있습니다.

TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

열기 작업 관리자 Ctrl+ Shift+ Esc, 및 죽 Tomcat7.exe또는 이러한 포트를 사용하여 다른 프로세스.


이를 자동화하기 위해 PowerShell 스크립트를 포함하는 새로운 답변을 참조하십시오.
Xharlie

0

Tomcat이 이미 실행 중일 수 있습니다. 그래서 오류가 발생했습니다. 나는 전에 같은 문제가 있었다. 나는 그것을 매우 간단하게 해결했다.

  1. 컴퓨터를 다시 시작하십시오
  2. 이클립스 열기
  3. Tomcat을 실행하십시오.

그게 다야.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.