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

3527 단어
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에 원격 디버그 포트 번호 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 명령의 원시적인 기능은 열린 파일의 프로세스를 열거하는 것이지만 LINUX에서 모든 장치는 파일의 행식으로 존재하기 때문에 lsof의 기능은 매우 강력합니다!문법: lsof [-?ahlnNPRsv] [-c c] [+|-d d] [+|-D D] [-g [s]] [+|-L [I]] [-ps] [+|-r [t]] [-u s] [names] 매개 변수 설명: 매개 변수를 추가하지 않으면 lsof는 프로그램이 열려 있는 모든 파일을 표시합니다. -? -이 두 매개 변수는 뜻이 같습니다. lsof의 사용 설명 - a 매개 변수가 AND로 간주됨을 보여 줍니다. 모든 매개 변수 - C c는 문자열이나 문자열 c로 시작하는 명령 프로그램이 열린 파일을 보여 줍니다. 예를 들어 $lsof - C init + d s가 폴더 s에서 검색합니다. 이 매개 변수는 이 폴더를 계속 깊이 검색하지 않습니다./usr/local에서 프로그램이 켜진 파일을 표시하면: $lsof+d/usr/local+D D와 같지만 이 파일을 기반으로 아래로 모두 검색합니다. 이렇게 하면 비교적 큰 CPU가 걸릴 때 -ds 파라미터를 조심스럽게 사용하여 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][:serivece|port] 설명: 46 IPv4 or IPv6 protocol TCP or UDP hostname internet hostname hostaddr IPv4 주소 서비스/etc/service의 서비스name 포트 번호 -l 이 매개 변수는 사용자 ID를 로그인 이름으로 변환하는 것을 금지합니다. 기본적으로 로그인 이름 +|-L [l] + 또는 - 디스플레이 파일 연결 수를 열거나 닫습니다.단순한 +L만 있고 뒤에 숫자가 없으면 모든 것을 표시합니다. 뒤에 숫자가 있으면 파일 연결 수가 이 숫자보다 적은 것만 나열됩니다. - n은 IP 주소를 hostname로 변환하지 않습니다. - N은 NFS를 표시하는 파일 - ps를 PID로 표시합니다. - P 이 매개 변수는 포트넘버를 서비스name로 변환하는 것을 금지합니다. 변환 + | r [t] 제어는 lsof가 계속 반복됩니다. t는 15초입니다.즉, 15초 간격으로 + r를 반복해서 실행합니다. 파일이 표시되지 않을 때까지 - r는 영원히 실행됩니다. 중단 신호 (ctrl+c) 를 받을 때까지 - R 이 매개 변수는 PID의 하위 프로그램, 즉 PPID - s가 파일의 크기를 표시합니다. 이 파일에 크기가 없으면공백-us로ginname 또는 UID를 표시하는 프로그램-v로 lsof의 버전 정보 lsof 명령의 묘용을 표시합니다. 유닉스 컴퓨터가 침입했을 때 로그 파일이 삭제되어 공격자의 흔적을 감추는 경우가 흔합니다.관리 오류로 인해 중요한 파일을 의외로 삭제할 수도 있습니다. 예를 들어 낡은 로그를 정리할 때 데이터베이스의 활동 로그를 의외로 삭제했습니다.때때로 이 파일들을 복구할 수 있으며, 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 인 것을 볼 수 있습니다.따라서 명세서 1과 같이/proc/2452/fd/7에서 해당하는 정보를 볼 수 있습니다.명세서 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] LDAP: Built with OpenLDAP LDAP SDK Linux의 장점은 파일 이름을 저장하고 삭제되었다는 것을 알려줄 수 있다는 것입니다.파괴된 시스템에서 관련 내용을 찾을 때, 이것은 매우 유용한 내용이다. 왜냐하면 공격자는 통상적으로 로그를 삭제하여 그들의 종적을 숨기기 때문이다.Solaris에서는 이러한 정보를 제공하지 않습니다.하지만 httpd 수호 프로세스가 error_를 사용한 것을 알고 있습니다log 파일, 그래서 ps 명령을 사용하여 이 PID를 찾을 수 있으며, 이 수호 프로세스가 열어 놓은 모든 파일을 볼 수 있습니다.

좋은 웹페이지 즐겨찾기