2013-04-18 17 views
1

我在unix上有一個很大的java系統,有許多子系統(電子郵件,連接等),它們監聽很多端口,但我不知道我的哪些類\子系統監聽哪個端口。如何確定什麼子系統監聽大型java系統中的每個端口

有沒有一種工具可以幫我弄清楚這一點?

例如: 這是我所得到的,當我運行netstat,我不知道在我的java什麼系統正在使用端口2503,什麼2505

>netstat -nap |grep 250 
Proto Recv-Q Send-Q Local Address Foreign Address    State  PID/Program name 
tcp  0  0 0.0.0.0:2503  0.0.0.0:*     LISTEN  26659/java 
tcp  0  0 0.0.0.0:2505  0.0.0.0:*     LISTEN  26659/java 

回答

1

相同的PID /應用程序使用2個端口。你有你的答案。

鑑於基於所提供信息的答案如此明顯,您將不得不更加具體地解決您的問題;我只能假設這是你要找沒有什麼

+1

我在OP的問題上有點不清楚,但我的解釋是「我有一個使用多個端口的Java應用程序(單個PID)。有什麼方法可以找出哪些類正在使用此應用程序中的哪些端口? –

+1

如果這是提問者真正的問題,那麼答案是平坦的不! 在我看來,提問者是一個試圖調查問題的OPs人。哪一個會問這樣一個問題:地球上什麼(即使你可能知道)會知道這個班,啓動socket聽,爲你做?你會刪除它嗎?移動它?任何Java開發人員都會告訴你,這可能對你的應用程序造成災難性的後果 –

0

一旦你的PID,你可以用ps

PS -Af | grep的26659 |少

的 - f選項不僅會顯示使用該端口的程序(java),還會顯示用於啓動它的命令行。所以如果你有多個Java進程在運行,並且每個都是作爲一個單獨的任務啓動的,你將會看到哪一個正在使用這個端口。

您可能希望在「less」中查看結果,以便您可以滾動java常用的非常長的命令行。