내 Linux 시스템에서 weblogic 서버를 실행하려고 하는데 다음 오류가 발생합니다.
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)
이 오류는 기본적으로 8453인 디버거 포트가 이미 다른 서비스에서 사용되고 있음을 의미한다고 생각합니다. 특정 포트 번호에서 어떤 서비스가 실행되고 있는지 확인하는 방법은 무엇입니까?
추신: 이 명령을 사용했지만 netstat
모든 포트를 차지하는 모든 서비스가 표시됩니다. 여기서는 특정 포트에만 관심이 있습니다.
답변1
두 가지 방법:
lsof -i :port -S
netstat -a | grep port
넌 할 수있어man lsof
또는man netstat
필요한 정보를 얻으세요. port
검색하려는 포트 번호로 바꾸십시오 .
답변2
fuser
다음 을 사용할 수 있습니다 lsof
.
fuser 8453/tcp
lsof -i TCP:8453
더 많은 정보를 원할 경우 fuser
이 플래그를 사용할 수도 있습니다 -v
. 예:fuser -v 8453/tcp
답변3
그만한 가치가 있는 경우... 사용 중인 버전 netstat
(특히 GNU netstat
)에 따라 다음을 사용할 수 있습니다.
netstat -punta | grep <port>
이는 ESTABLISHED 및 LISTEN 상태의 UDP 및 TCP 연결을 표시하고 UNIX 로컬 소켓을 무시합니다. 최종 결과는 훌륭하고 깔끔하고 작은 결과 세트입니다.
이 -p
플래그는 포트를 사용하는 프로세스 ID와 프로세스 이름을 제공합니다.
플래그 -u
에 udp가 표시됩니다.
이 -n
플래그는 숫자 주소에 사용됩니다.
이 -t
플래그는 TCP를 표시합니다.
-a
청취 소켓 및 비청취 소켓 표시
편집 - 이 명령은 최신 EL 배포판에서 대체 ss
되었습니다.netstat
답변4
센토스에서
/usr/sbin/lsof -i tcp:8453 (lsof -i protocol:port)
우분투에서
/usr/bin/lsof -i tcp:8453
또는 필터를 사용하여 netstat의 결과 범위를 좁힐 수도 있습니다.