클라이언트와 통신하기 위해 Java 클래스에서 포트 # 5955를 열었습니다. 완료 후이 포트를 어떻게 닫습니까? 또한 포트가 열려 있거나 닫혀 있으면 어떤 명령이 표시 될 수 있습니까?
답변
-
해제하려는 포트 번호 (예 : 5955)를 차지하는 프로세스 ID (PID)를 찾으십시오.
sudo lsof -i :5955
-
PID를 사용하여 현재 포트를 사용중인 프로세스를 종료하십시오.
sudo kill -9 PID
답변
프로세스를 찾으려면 다음을 수행하십시오.
sudo lsof -i :portNumber
PID를 사용하여 현재 포트를 사용중인 프로세스를 종료하십시오.
kill PID
포트가 닫혔는지 확인하십시오. 그렇지 않은 경우 다음을 시도하십시오.
kill -9 PID
이전에 작동하지 않은 경우에만 다음을 수행합니다.
sudo kill -9 PID
안전합니다. 포트를 여는 방법에 따라이 문제는 중요하지 않을 수 있습니다.
답변
그러나 포트를 열었을 때 같은 방식으로 닫습니다. 예를 들어, 소켓을 작성하여 포트 0.0.0.0:5955에 바인드하고 청취라고하는 경우 동일한 소켓을 닫으십시오.
포트가 열린 프로세스를 종료 할 수도 있습니다.
포트가 열려있는 프로세스를 찾으려면 다음을 시도하십시오.
lsof -i :5955
포트가 열려 있는지 확인하려면 동일한 lsof 명령을 수행하거나 (프로세스가 열려 있으면 열려 있고 그렇지 않은 경우) 아니면 연결하려고 할 수 있습니다 (예 :
nc localhost 5955
출력없이 즉시 반환되면 포트가 열려 있지 않은 것입니다.
기술적으로 말해서 개방 된 포트가 아니라 호스트 : 포트 조합입니다. 예를 들어 LAN에 10.0.1.2로 연결된 경우 소켓을 다른 소켓에 영향을주지 않고 127.0.0.1:5955 또는 10.0.1.2:5955에 소켓을 바인딩하거나 0.0.0.0에 바인딩 할 수 있습니다. : 5955를 동시에 처리합니다. 이 ifconfig
명령으로 컴퓨터의 모든 IPv4 및 IPv6 주소를 볼 수 있습니다 .
답변
매우 간단한 포트 5900 찾기 :
sudo lsof -i :5900
그런 다음 59553을 PID로 고려하십시오.
sudo kill 59553
답변
2018 년에 MacOS HighSierra를 사용하여 나를 위해 일한 것은 다음과 같습니다.
sudo lsof -nPi : yourPortNumber
그때:
sudo kill -9 yourPID 번호
답변
하나의 라이너가 최고
kill -9 $(lsof -i:PORT -t) 2> /dev/null
예 : Mac에서 포트 9604를 지우고 싶었습니다. 다음 명령은 참처럼 작동했습니다.
kill -9 $(lsof -i:9604 -t) 2> /dev/null
답변
이 첫 번째 명령을 사용하여 특정 포트를 소유 한 프로세스를 종료 할 수도 있습니다.
sudo netstat -ap | grep :<port_number>
예를 들어이 프로세스에 포트가 있다고 가정하십시오. 8000 TCP를다음 명령을 실행.
sudo netstat -ap | grep :8000
프로세스 홀딩 포트에 해당하는 라인을 출력합니다 8000에.
tcp 0 0 *:8000 *:* LISTEN 4683/procHoldingPort
이 경우 procHoldingPort 는 포트를 연 프로세스의 이름입니다. 4683 은 pid이며 8000입니다. (TCP 임)은 보유하고있는 포트 번호입니다 (닫고 자 함).
그런 다음 위의 예제에 따라 프로세스를 종료하십시오.
kill 4683
다른 사람들이 여기에 언급했듯이, 그래도 작동하지 않으면 (-9를 인수로 사용하여 kill을 시도 할 수 있습니다)
kill -9 4683
다시 말하지만 일반적으로 가능하면 SIGKILL (-9)을 보내지 않는 것이 좋습니다.
건배,
사람.