Fedora 13 64 비트를 사용하고 있습니다. 내 이클립스 프로그램은 포트 9050에서 서버를 시작하지만 프로그램을 종료하면 이클립스가 제대로 서버를 종료하지 못합니다. 이클립스를 재시작해도 아무 효과가 없습니다.
명령 줄에서 포트를 강제로 닫거나 바인딩을 해제하려면 어떻게합니까?
다시 부팅하거나 로그 오프했다가 다시 켜면 포트가 지워지지만 나보다 느린 프로세스입니다. 명령 줄에서 강제로 포트를 닫으려고합니다.
답변
강제로 닫는 유일한 방법은 청취 포트는 수신 대기중인 프로세스를 종료하는 것입니다. 용도 lsof
, netstat
, fuser
– 루트로 – 프로세스 ID를 찾으십시오. 프로세스가 종료되면 (자체적으로 또는 종료 됨으로써) 커널은 열린 소켓을 모두 자동으로 정리합니다. (단, 같은 포트에서 몇 분 동안 프로그램의 수신이 거부되는 경우가있을 수 있습니다.이 경우 대기 만 있으면됩니다.)
답변
lsof -n -i
찾고있는 프로세스를 찾아서 종료하십시오.
에서 lsof
조작 :
-엔 이 옵션은 네트워크 번호를 네트워크 파일의 호스트 이름으로 변환하는 것을 금지합니다. 변환을 금지하면 lsof가 더 빨리 실행될 수 있습니다. 또한 호스트 이름 조회가 제대로 작동하지 않을 때 유용합니다.
-나는 [나는] 이 옵션은 인터넷 주소가 i에 지정된 주소와 일치하는 파일 목록을 선택합니다. 주소를 지정하지 않으면이 옵션은 모든 인터넷 및 x.25 (HP-UX) 네트워크 파일 목록을 선택합니다.
같은 대답 이 질문 나는 생각한다.
답변
당신은 fuser
명령과 함께 -k
스위치.
예를 들어, 포트 111을 닫으려면 다음을 수행하십시오. fuser -k 111/tcp
(이것은 퓨저가 암시 적으로 수행 할 때 프로세스의 ID를 찾아내는 번거 로움을 덜어줍니다)
일부 프로세스는 일단 닫히면 자동으로 다시 시작됩니다. 이를 위해서는 각 프로세스의 config 파일에서 적절한 해결 방법을 찾아야합니다.
답변
나는 같은 문제를 가지고 있었는데, 창에서 cmd 명령을 사용하여 포트를 듣고있는 프로세스를 찾는다.
netstat -a -b
그런 다음 작업 관리자를 사용하여 종료 할 수 있습니다.