Tomhost Server tarafından localhost'ta gerekli olan birkaç bağlantı noktası (8005, 8080, 8009) zaten kullanımda


258

Eclipse Tomcat basit bir JSP programı çalıştırmaya çalıştığınızda aşağıdaki hatayı alıyorum.

Tomhost v6.0 Server tarafından localhost'ta gerekli olan birkaç bağlantı noktası (8005, 8080, 8009) zaten kullanımda. Sunucu başka bir işlemde zaten çalışıyor olabilir veya bir sistem işlemi bağlantı noktasını kullanıyor olabilir. Bu sunucuyu başlatmak için diğer işlemi durdurmanız veya bağlantı noktası numaralarını değiştirmeniz gerekir.

Bunun nedeni nedir ve nasıl çözebilirim?


Windows güvenlik duvarı olduğu ortaya çıktı benzer bir sorun vardı.
James Oravec

Muhtemelen bazı ölümsüz süreç tomcat'inizi hayatta tutuyor. işlemi kimliğini bularak ve sonlandırarak ya da makinenizi yeniden başlatarak öldürün.
Felipe Leão

zaten komut konsolundan çalışan tomcat hizmetlerini durdurmak için bu komutu kullanabilirsiniz. netstat -ano | findStr 8080çalışan hizmetleri bulmak ve sonra işlem kimliğini bulmak ve pid kopyalamak ve komutu yeniden çalıştırıntaskkill /F /PID pid_number
Mdhar9e

Yanıtlar:


473

Tomcat'in başka bir örneği zaten var. Bunu http://localhost:8080web tarayıcınıza giderek onaylayabilir ve Tomcat'in varsayılan ana sayfasını mı yoksa Tomcat'e özgü 404 hata sayfasını alıp almadığınızı kontrol edebilirsiniz. Her ikisi de Tomcat'in iyi çalıştığına dair eşit derecede geçerli delillerdir; olmasaydı, tarayıcıya özgü bir HTTP bağlantısı zaman aşımı hata mesajı alırsınız.

Kapatmanız gerekiyor. Git /binTomcat yükleme klasörünün alt klasör ve yürütme shutdown.bat(Windows) veya shutdown.sh(Unix) komut dosyası. Boşuna kalırsa, Eclipse'i kapatın ve görev yöneticisini açın ve tüm javave / veya javawişlemleri öldürün .

Veya herhangi bir nedenle bir Windows hizmeti olarak yüklediyseniz (bu üretim için tasarlanmıştır ve yeni geliştirdiğinizde yararsızdır), hizmet yöneticisini açın ( Başlat> Çalıştır> services.msc ) ve Tomcat hizmetini durdurun. Gerekirse, Windows hizmetini tamamen kaldırın. Geliştirme için sadece ZIP dosyası yeterlidir.

Veya gerçek amacınız iki Tomcat örneğini aynı anda çalıştırmaksa, ikinci örneği farklı bağlantı noktalarını dinleyecek şekilde yapılandırmanız gerekir. Daha fazla ayrıntı için Tomcat belgelerine bakın.


1
mükemmel, bu beni sonsuza dek rahatsız ediyor. sh shutdown.sh/ Bin dizinindeki terminalde olduğu gibi yürüttüm.
Danny Englander

2
Merhaba BalusC, senden hoşlanıyorum! Hiçbir yoktur shutdown.batbenim bin klasöründe. Tomcat bir zip olarak değil, bir hizmet olarak kuruldu. Hizmetlerde tomcat hizmetinin durdurulması sorunu çözdü. Teşekkürler. Chenqui.
Erran Morad

1
@Borat: Rica ederim. Hizmeti gerçekten daha iyi kaldıracağınızı ve bunun yerine zip'i alacağınızı unutmayın.
BalusC

6
"tüm java ve / veya javaw süreçlerini öldürmek" benim için çalıştı, teşekkürler.
Thariq Nugrohotomo

3
Açılış system monitorveya task managerve kullanan bir java süreci öldürme about 400 MBya da daha RAMda sorunu çözecektir. Bilmeden süreci saklı tutuyor.
engerek

55
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
  • Eclipse'i yeniden başlatmaya gerek yok
  • Yukarıdaki hatayı alırsanız, bu satırı terminalde girin
  • tekrar Eclipse'de tomcat'ı başlatın.
  • sadece Linux tabanlı sistemde çalışır (Ubuntu ..etc)

6
Bu daha iyikill $(ps -aef | grep java | grep apache | awk '{print $2}')
firesofmay

Bu benim için işe yaramıyor (Mint 17.1). Bana killemir için yardým ediyor .
Deleet

Bu benim için çalıştı. Ancak çalışan 2 örneğim olup olmadığını bilmek istedim ve bu yöntemi kullanarak birini durdurmak zorunda zorlamak zorunda, nasıl kapatılacağını nasıl anlayabilirim. Teşekkürler
Gautam

29

Windows üzerinde çalışıyorsanız bunu komut satırı isteminde deneyin:

netstat -ano

Bu, kullanılan tüm bağlantı noktalarını ve bu bağlantı noktasını kullanan işlemin PID # işlem kimliğini gösterir. Ardından Ctrl+ Alt+ ' Delyı tıklayın ve hangi işlemin bu olduğunu görmek için Görev Yöneticisi'ni açın.

Daha sonra onu kapatmayı / durdurmayı veya sunucunuzu başka bir bağlantı noktası kullanacak şekilde yapılandırabilirsiniz. Yeni seçilen bağlantı noktasının (diyelim ki 8010) kullanılabilir olup olmadığını kontrol etmek için şunu yapın:

netstat -ano | grep 8010

Herhangi bir satır döndürmezse, sorun değil.

Bağlantı noktasını değiştirmek için Sunucu görünümüne gidin, server.xml dosyasını açın ve bağlantı noktasını orada değiştirin. Benimki şu girişe sahip:

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

Lütfen Görev Yöneticisi'ni açmanıza gerek kalmadan bunu otomatikleştirmek için bir PowerShell betiği eklediğim yeni yanıtımı görün.
Xharlie

1
findstrgrep olmayanlar için.
eckes

25

Mac ortamındaysanız, işte yaptığım şey.

Bu bağlantı noktasında çalışan işlem kimliğini terminalden bulun, örn. 8080:

lsof -i :8080

ve öldürün:

kill -9 <PID>  

Misal:

Aşağıdaki sonucu görebilirsiniz:

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)

ve öldür: ( kill -9 21347)


20

Eclipse'de tomcat sunucusunu çalıştırmak için kullanılan bağlantı noktasını boşaltma adımları

Örneğin, 8080 bağlantı noktasının kullanıldığını varsayalım, tomcat'i çalıştırmak için ücretsiz 8080 yapmamız gerekiyor

Aşama 1:

C: \ Kullanıcılar \ kullanıcı adı> netstat -o -n -a | findstr 0.0: 8080

TCP 0.0.0.0:3000 0.0.0.0:0 DİNLEME 3116

Şimdi, LISTENING portunun 8080 için 3116 olduğunu görebiliriz,

Şimdi 3116'yı öldürmemiz gerekiyor

Adım 2:-

C: \ Kullanıcılar \ kullanıcı adı> taskkill / F / PID 3116

Adım 3: Eclipse'e gidin ve Server'ı başlatın, çalışacak


14

Eclipse kullanıyorsanız sunuculara çift tıklayın ve tomcat sunucusuna çift tıklayın, bir dosya açılacaktır. Bu dosyada HTTP portunu başka bir port numarasına değiştirin ve kaydedin ( Ctrl+ S) sonra sunucuyu yeniden başlatın.


Diğer çözümler işe yaramazken bu benim için çalıştı. Mint 17.1 kullanıyorum. Tomcat'i Eclipse ve apt-get aracılığıyla yüklemem gerekti çünkü apt-get'in yüklü olduğu klasörü bulamadım. Bu yüzden muhtemelen iki tane var. Yine de ilkini kill komutlarıyla kapatamadım.
Deleet

12

Eclipse diyorsa

Tomhost v6.0 Server tarafından localhost'ta gerekli olan birkaç bağlantı noktası (8005, 8080, 8009) zaten kullanımda

Bu hata, tomcat arka planda çalışıyor olabilir, bu yüzden önce bu sunucuyu durdurun ... aşağıdaki ayrıntıları izleyin.

Çözüm:

  1. "Konsol" görünümünü açın (pencere-> görünümü göster-> Konsol)
  2. Ardından tomcat sunucusunu durdurun.
  3. Sonra "sunucu" görünümünü açın ve çalışacağı sunucuyu başlatın.

Teşekkürler!


Bu benim için çalıştı. Ben sadece denedim: sudo service tomcat stop
Emiliano Sangoi

10

"Tomcat bağlantı noktası" (benim durumumda 8088 bağlantı noktası) kullanan başka hiçbir Tomcat reklamı örneği yok. Tutulma Tomcat başlatıldığında aynı mesajı gönderir:

.... Sunucu başka bir işlemde zaten çalışıyor olabilir veya bir sistem işlemi bağlantı noktasını kullanıyor olabilir. Bu sunucuyu başlatmak için diğer işlemi durdurmanız veya bağlantı noktası numaralarını değiştirmeniz gerekir.

Sorunu şu şekilde çözüyorum:

  • komut istemiyle tomcat kutusuna git
  • startup.bat dosyasını başlat
  • shutdown.bat dosyasını başlat
  • tomcat Eclipse tarafından başla

1
Benim sorunum, 8005 ve 8009 bağlantı noktalarının meşgul olmasıydı, ancak 8080 bağlantı noktası ücretsizdi ve o anda hiçbir tomcat yüklemesi çalışmıyordu. Çözümünüz bu sorunu çözmeme yardımcı oldu, teşekkürler.
Benas

7

Önerilen tüm cevabı okuduktan sonra ve bildiğim gibi limanım zaten kullanılıyordu. Tutulmadaki Sunucular sekmesinin altındaki Tomcat'i çift tıkladım ve genel bakış bilgilerini açtım ve daha sonra bağlantı noktası bilgilerini buldum. Benimki 8009 bağlantı noktası olduğu için çakışan bağlantı noktasını değiştirdim (sunucunun başlatılması sırasında belirtilen hata). 8008 olarak değiştirdim ve iyi çalışıyor. Değiştirilen bağlantı noktası kullanımda olmazsa deneyin sunucu başlayacaktır.


6

Adım 1: netstat -a -o -n ve bir ağ listesi getirir, 127.0.0.1:8080 gibi yerel adresi arar ve PID'yi not eder (eq 3624)

C:\>netstat -a -o -n

Adım 2: Taskkill / F / PID 3624 . Bu işlemi öldürmek için bu komutu çalıştırın.

C:\>taskkill /F /PID 3624

gönderi bağlantısı


Lütfen bu iki satırı otomatikleştirmek için bir PowerShell betiği eklediğim yeni cevabımı inceleyin.
Xharlie

5

Windows'ta zaten çalışan tomcat örneğini durdurmak için komutu kullanın ve eclipse içinde tekrar çalıştırmayı deneyin, işe yarayabilir.

net stop tomcat7 

Ya da sadece başka bağlantı noktalarında çalıştırmak istiyorsanız sunucunun XML dosyasındaki bağlantı noktasını değiştirebilirsiniz .


4

Sorununuzu çözmenin kolay yolu:

Sunucu başka bir işlemde zaten çalışıyor olabilir veya bir sistem işlemi bağlantı noktasını kullanıyor olabilir. Bu bağlantı noktasını öldürmek için aşağıdakileri yapın:

1) Aşağıdaki linkten TCPView (sadece 285kb ) indirin .

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

2) Klasörü ayıklayın ve TCPView uygulamasını başlatın .

3) Sağ tıklama java.exe (8009,8005 portları yaygın java işlemi tarafından kullanılır çünkü) ile belirli Bitiş Süreci seçeneği.

bu başka bir işlemi kolayca durduracaktır ..

NOT : TOMCATPATH ​​/ bin / shutdown.bat komutunun çalıştırılması , Tomcat bazı şeytan veya yönetilmeyen iş parçacıkları içerdiğinde kapatmayabilir. Bu gibi durumlarda TCPView sorunsuz çalışır.


2

Eclipse'de Java EE'de ilerliyorsanız ve Tomcat Server'ı Eclipse'de hata ayıklama modunda başlatmaya çalışıyorsanız, bu tür hatalar alırsınız. Eclipse'de olası hata ayıklamaya geçmelisiniz. Sorunumu böyle çözdüm.


2

Bazen bağlantı noktaları kapanmaya çalıştıktan sonra bile serbest bırakılmazsa. @BalusC'nin önerdiği şeyle savaşın, javaw işlemini öldürebilirsiniz. Aşağıdaki adımları uygulayın:

  1. Başlat Menüsü'ne tıklayın ve "Windows powershell" i açın
  2. Açmadan önce sağ tıklayın ve "Yönetici olarak çalıştır" ı seçin
  3. Ps komutunu girin. Aşağıdaki gibi bir görüntü görebilirsiniz: Powershell çalışan mevcut proesses gösteren

  4. İşlem numarası "javaw" bakın. İşlem numarası sütunlarda en sağdaki sayı, örneğin javaw görüntü işlem sayısı vurguladı.

  5. Kill komutunu girin. javaw öldürüldü ve şimdi programı çalıştırabilmelisin.


1
Lütfen bunu otomatikleştirmek için bir PowerShell betiği eklediğim yeni cevabıma bakın.
Xharlie

2

Yukarıdaki çabaların hiçbiri yardımcı olmadıysa denemek için bir seçenek daha var. Bir Paylaşılan Sürücüden Eclipse kullanıyor olabilirsiniz (örneğin, H :) . Öyleyse, tüm Eclipse dizinini C: klasörüne taşıyın / kopyalayın ve tekrar deneyin.

Eclipse'im Tomcat sunucusu için portları açamadı (yukarıdaki hatayla) ve hatta internete bağlanamadı. Ayrıca bağlantı noktalarını açamayan başka bir Tomcat eklentisini (Sysdeo) denedim.

Denediğim seçenekler şunlardır:

Diğer Tomcat Örneklerini Kontrol Et ve Öldür

  • Komut isteminde netstat -anove diğer işlemlerin çakışan bağlantı noktalarını kullanıp kullanmadığını kontrol edin.
  • PID'yi bulun ve öldürün
  • Sunucuyu yeniden başlatmayı deneyin.

Tutulmadaki Tomcat Portlarını Değiştirme

  • Eclipse Server sekmesinde, Tomcat örneğini çift tıklatın. Bu, yapılandırma sekmesini açar.
  • Bağlantı Noktaları altında, bağlantı noktası numaralarını değiştirin. (örneğin, 18080).

Java.exe ve Java'yı öldür

Eclipse'in İnternet'e bağlanmadığı için diğer cevabımı görün ( https://stackoverflow.com/a/37246087/4212710 ).


2

Windows kullanıcıları için:

CTRL + ÜST KARAKTER + ESC tuş bileşimi ile doğrudan Görev Yöneticisi'ne gidin.

Sağ tıklayıp "Görevi Sonlandır" ı seçerek "java.exe" işlemlerini öldürün.


2

Bütün cevapları kontrol ettim ama informing only to kill PID.

Durumunda ise tüm paylaştığı terminali erişime sahip bu yardım olmaz ya belki PıD'YI öldürmek izniniz yok .

Bu durumda yapabileceğiniz şey:

Double click on server

Go to Overview and change ports in Ports bunun gibi:

resim açıklamasını buraya girin


1

Benim için çalışan daha basit düzeltme, geçerli konuşlandırılmış webapps'leri tomcat'ten "Sunucu" sekmesinden silmektir. Onları kaldırdığımda sorun ortadan kalkar. Farklı Çalıştır> Sunucuda Çalıştır'a giderek projenizi yeniden dağıtmanız yeterlidir.


1

Sorun genellikle, bir kapatma talimatı gönderilse bile Apache Tomcat düzgün bir şekilde sonlandırılamadığında ortaya çıkar. Benim durumumda, Tomcat 8'i kullanırken, bu can sıkıcı bir düzenlilikle olur. Neyse ki, netstatişlemi öldürmek için basit bir komut dosyası oluşturmak için Windows PowerShell ve komutunu kullanabilirsiniz.

Aşağıdaki PowerShell betiği netstat, dinleyen herhangi bir işlemi bulmak 127.0.0.1:8005, PID'sini ayıklamak ve ardından bu işlemi öldürmek için çıktıyı ayrıştırır :

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.xmlTomcat'iniz farklı bir bağlantı noktası veya IP kullanacak şekilde yapılandırılırsa, komut dosyasının dördüncü satırındaki normal ifadeyi buna göre düzenleyin.

Son olarak, durumun Linux'ta daha iyi olduğuna dikkat etmeliyim, çünkü Tomcat'e PID'yi başlangıç ​​zamanında bir dosyaya kaydetmesini söyleyebilir ve daha sonra kapatmayı zorlamak için bir anahtar kullanabilirsiniz - 'nix sistemleri için kapatma komut dosyası zaten süreci ve sleuth çalışmasını öldürme yeteneği netstatgerekli değildir.


1

Yukarıdaki sorun Windows 7 veya 10 tabanlı işletim sisteminde oluşursa, sorun Tomcat Windows Hizmeti olarak çalıştığı için oluşur. Tomcat'in Windows Hizmetleri olarak çalışmasını durdurmak için Windows Denetim Masası'nı açın. "Apache Tomcat" servisini bulun ve durdurun. Başka bir yol cmd kullanarak 8080 numaralı bağlantı noktasında çalışan işlemi öldürmektir.

Yönetici olarak çalışan cmd'yi açın.

  1. C: \ users \ kullanıcı adı> netstat -o -n -a | findstr 0.0: 8080
  2. TCP 0.0.0.0:8080 0.0.0.0:0 DİNLEME 2160.
  3. Yukarıdaki 2160, 8080 numaralı bağlantı noktasında çalışan işlemin işlem kimliğidir ve aşağıdaki komutu kullanarak bu işlemi öldürür
    : \ users \ username> taskkill / F / PID 2160
  4. IDE'ye gidin ve Sunucuyu başlatın, çalışır

1

Bunun nedeni, tomcat hizmetinizi düzgün bir şekilde durdurmamanız olabilir. Bunu yapmak için, orada görev yöneticinizi açın bir javaw.exehizmet görebilirsiniz . İlk önce bu hizmeti durdurun. Şimdi Tomcat'inizi yeniden başlatın, iyi çalışıyor.


1

Benim durumumda, bana hata veriyordu: Tomhost v8.0 Server tarafından localhost'ta gereken 8005 numaralı bağlantı noktası zaten kullanımda

Apache-tomcat-8.0.39 \ conf \ server.xml dosyasında 8005 bağlantı noktasını değiştirdim ancak değişiklikler yansıtılmıyordu. Sonra bu değişiklikleri tutulmadan yaptım. sunucuyu çift tıklatarak ve bağlantı noktasını 8005'ten 8006'ya değiştirerek çalışır. resim açıklamasını buraya girin

8006'yı koymadan önce bu portun mevcut olup olmadığını Windows kabuğuna kontrol ettim. Aşağıdaki komutu yürüterek:

netstat -a -o -n | findstr 8006

1

Aynı sorunla karşılaşıyorum ve aşağıda gösterildiği gibi cevap aradıktan sonra: 1. Tomcat'i aşağıda gösterildiği gibi açın: resim açıklamasını buraya girin

  1. Aşağıdaki resimde gösterildiği gibi durdur düğmesine basmanız yeterlidir:

resim açıklamasını buraya girin

Son olarak, birçok denemeden ve önerilen çözümlerden sonra benimle çalışıyor.

Saygılarımla, Kerelos Mikhail


0

Eclipse'de "Sunucular" projesi altında Tomcat yapılandırma klasörünü ham olarak silin. Son umut olarak denedim ve işe yaradı.


0

Windows durumunda, yeni bir şey yaşadım ... Tomcat'i / bin klasöründen durdurmak, 8080 numaralı bağlantı noktasını hemen serbest bırakmayacak. Bağlantı noktasını bırakmak yaklaşık 5-10 dakika sürüyor. 10 dakika sonra tekrar benim proje çalıştırmak için çalışırsanız Çalıştır>> sunucuda Çalıştır .. çalışmasına izin verir.

Anlayışımın doğru olup olmadığından emin değilim!


0

Aşağıdaki bloga bakın "bilgisayarınızı yeniden başlatmak zorunda kalmadan tomcat nasıl öldürülür"

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

Umarım bu gelecekte birine yardımcı olur.


1
Yukarıdaki bağlantı öldü. Bu iyi blog makalesine işaret ediyor: stanicblog.blogspot.fr/2012/01/…
dounyy

Lütfen önemli kısımdan bahsetmeden okumak için bağlantılar eklemeyin. Çünkü insanlar burada cevaplar alıyor.
Menuka Ishan

0

Projedeki diğer kullanıcılar da kullandığınız bağlantı noktası numaralarını kullandığında oluşur! Tomcat sunucusuna çift tıklayın, port numaralarını 8585 veya başka bir şeyle değiştirin. Kod şimdi çalışmaya başlayacak!


0

PID kullanarak Windows hizmeti nasıl öldürülür -

  1. komut istemini aç ve yaz netstat -ano
  2. kullanılan portların PID'sini bulun, bu durumda 8080, 8005.8009 olacaktır. Diyelim ki bu portların PID'si 5760.
  3. Şimdi yazın taskkill /f /pid 5760
  4. PID'yi kapatır ve bağlantı noktaları kullanıma hazır olur. Artık Tomcat'i Windows hizmetleri veya tutulmanın kendisi ile normal olarak başlatabilirsiniz.

Teşekkürler

durdurma veya başlatma konusunda sıkışmış bir Windows hizmetini öldürmek


0

Tomhost vX.X Sunucusu tarafından localhost'ta gereken birkaç bağlantı noktası (8005, 8080, 8009) zaten kullanımda

Tomcat'in başka bir örneğinin zaten çalıştığını veya başka bir işlemin bağlantı noktalarını kullanıp kullanmadığını kontrol etmek için:

netstat -b -aWindows için komut isteminde. Bu, kullanılan bağlantı noktalarını listeler ve her birini kullanan yürütülebilir dosyayı verir. Bunu yapmak için yönetici grubunda olmanız gerekir.

Bunun gibi bir şey alabilirsiniz:

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]

Görev yöneticisi Ctrl+ Shift+ ' yı açın Escve Tomcat7.exebu bağlantı noktalarını kullanarak öldürün veya başka bir işlemi yapın.


Lütfen bunu otomatikleştirmek için bir PowerShell betiği eklediğim yeni cevabıma bakın.
Xharlie

0

Tomcat'iniz muhtemelen çalışıyor. Bu yüzden bir hatanız var. Daha önce de aynı problemi yaşadım. Çok basit bir şekilde çözdüm:

  1. Bilgisayarı yeniden başlatın
  2. Açık Tutulma
  3. Tomcat'inizi çalıştırın

Bu kadar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.