ERROR: transport error 202: bind failed: Address already in use

ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
 

解決方案:

 

以上證明有地址被用,我catalina.sh里加了個遠程debug端口號8001.
解決方法:
1、通知在聯機debug的人關閉聯調。

2、直接關閉服務器端進程

cst@wom:~/tomcat7_new/bin$ lsof -i:8001

COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME

java    12889  cst    4u  IPv4 3600348      0t0  TCP *:8001 (LISTEN)


[root@localhost ~]# kill -9 12889 

 

附:lsof命令詳解:
 
lsof命令 詳解



lsof:一個功能強大的命令
lsof命令的原始功能是列出打開的文件的進程,但LINUX下,所有的設備都是以文件的行式存在的,所以,lsof的功能很強大!
語法:lsof [-?ahlnNPRsv][-c c][+|-d d][+|-D D][-g [s]] [+|-L [I]][-p s][+|-r [t]][-u s][names]
參數說明:若沒有加上任何參數,lsof會列出所有被程序開啓的文件。
-? -h 這兩個參數意思相同,顯示出lsof的使用說明 -a 參數被視爲AND,會影響全部的參數
-C c 顯示出以字符或字符串c開頭的命令程序開啓的文件,如$lsof -C init
+d s 在文件夾s下搜尋,此參數不會繼續深入搜尋此文件夾。如顯示在/usr/local下被程序開啓的文件:$lsof +d /usr/local +D D 同上,但是會以該文件爲基礎往下全部搜尋,這樣花費較大的CPU時 間,請謹慎使用
-d s 此參數以file descriptor(FD)值顯示結果,可以採用範圍(1-3)或個別,如顯示FD爲4的進程:$lsof -d 4
-g [s] 以程序的PGID顯示,也可以採用範圍或個別表示,若沒有特別指定,則顯示全部,如顯示PGID爲6的進程:$lsof -g 6
-i 用以監聽有關的任何符合的地址,若沒有相關地址被指定,則監聽全部 
語法: lsof -i [46][protocol][@hostname|hostaddr][:serivce|port]
說明: 46  IPv4 or IPv6
protocol TCP or UDP
hostname internet host name
hostaddr IPv4地址
service /etc/service中的service name
port 端口號
-l 此參數禁止將user ID 轉換爲登錄的名稱,默認是登錄名稱
+|-L [l] +或-表示開啓或關閉顯示文件連接數,如果只有單純的+L,後面沒有任何數字,則表示顯示全部,如果後面有數字,只有文件連接數少於該數字的會被列出
-n 不將IP地址轉換爲hostname,預設是轉換的
-N 顯示NFS的文件
-p s 以PID作爲顯示的依據
-P 此參數禁止將port number轉換爲service name,預設爲轉換
+|-r [t] 控制lsof不斷重複執行,t爲15秒,也就是說每隔15秒再重複執行 +r 一直執行,直到沒有文件被顯示 -r 永遠不斷的執行,直到收到中斷訊號(ctrl+ c)
-R 此參數增列出PID的子程序,也就是PPID
-s 列出文件的大小,若該文件沒有大小,則留下空白
-u s 列出login name或UID爲的程序
-v 顯示lsof的版本信息

lsof命令的妙用:

當 UNIX 計算機受到入侵時,常見的情況是日誌文件被刪除,以掩蓋攻擊者的蹤跡。管理錯誤也可能導致意外刪除重要的文件,比如在清理舊日誌時,意外地刪除了數據庫的活動事務日誌。有時可以恢復這些文件,並且 lsof 可以爲您提供幫助。
  當進程打開了某個文件時,只要該進程保持打開該文件,即使將其刪除,它依然存在於磁盤中。這意味着,進程並不知道文件已經被刪除,它仍然可以向打開該文件時提供給它的文件描述符進行讀取和寫入。除了該進程之外,這個文件是不可見的,因爲已經刪除了其相應的目錄條目。
  # lsof | grep error_log
  httpd 2452 root 2w REG 33,2 499 3090660
  /var/log/httpd/error_log (deleted)
  httpd 2452 root 7w REG 33,2 499 3090660
  /var/log/httpd/error_log (deleted)
  ... more httpd processes ...
  在這個示例中,您可以看到 PID 2452 打開文件的文件描述符爲 2(標準錯誤)和 7。因此,可以在 /proc/2452/fd/7 中查看相應的信息,如清單 1 所示。
  清單 1. 通過 /proc 查找刪除的文件
  # cat /proc/2452/fd/7
  [Sun Apr 30 04:02:48 2006] [notice] Digest: generating secret for digest authentication
  [Sun Apr 30 04:02:48 2006] [notice] Digest: done
  [Sun Apr 30 04:02:48 2006] [notice] LDAP: Built with OpenLDAP LDAP SDK
  Linux 的優點在於,它保存了文件的名稱,甚至可以告訴我們它已經被刪除。在遭到破壞的系統中查找相關內容時,這是非常有用的內容,因爲攻擊者通常會刪除日誌以隱 藏他們的蹤跡。Solaris 並不提供這些信息。然而,我們知道 httpd 守護進程使用了 error_log 文件,所以可以使用 ps 命令找到這個 PID,然後可以查看這個守護進程打開的所有文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章