[macos] Mac에서 프로세스 잠금 포트 3000 찾기 및 죽이기

내 tcp 포트를 청취 / 사용하는 프로세스를 어떻게 찾아서 죽이나 요? Mac OS X에 있습니다.

때로는 충돌이나 버그가 발생한 후 레일 앱이 포트 3000을 잠그고 있습니다. ps -ef를 사용하여 찾을 수 없습니다 …

할 때

rails server

나는 얻다

이미 사용중인 주소-bind (2) (Errno :: EADDRINUSE)

2014 년 업데이트 :

아래의 답변 중 일부를 완료하려면 kill 명령을 실행 한 후 pid 파일을 삭제해야합니다. rm ~/mypath/myrailsapp/tmp/pids/server.pid



답변

  1. 당신은 시도 할 수 있습니다 netstat

    netstat -vanp tcp | grep 3000
    
  2. 대한 맥 OS 엘 캐피 탄 과 새 (또는 NETSTAT이 지원하지 않는 경우 -p), 사용lsof

    sudo lsof -i tcp:3000
    
  3. 대한 CentOS의 7 사용

    netstat -vanp --tcp | grep 3000
    

답변

찾기:

sudo lsof -i :3000

죽임:

kill -9 <PID>


답변

위의 어느 것도 나를 위해 일하지 않았습니다. 내 경험이있는 다른 사람은 다음을 시도 할 수 있습니다 (나를 위해 일함).

운영:

lsof -i :3000 (where 3000 is your current port in use)

그런 다음보고 된 PID의 상태를 확인하십시오.

ps ax | grep <PID>

마지막으로 “그것과 함께 시작”:

kill -QUIT <PID>


답변

포트 3000을 사용하여 프로세스의 PID를 추출하여 종료하는 단일 라이너.

lsof -ti:3000 | xargs kill

-t 플래그는 lsof 출력에서 ​​PID를 제외한 모든 것을 제거하므로 쉽게 종료 할 수 있습니다.


답변

가장 쉬운 솔루션 :

단일 포트의 경우 :

kill $(lsof -ti:3000)  #3000 is the port to be freed

한 줄 명령으로 여러 포트를 종료하십시오.

kill $(lsof -ti:3000,3001)  #here multiple ports 3000 and 3001 are the ports to be freed

lsof -ti : 3000

82500 (프로세스 ID / PID)

lsof -ti : 3001

82499

lsof -ti : 3001,3000

82499 82500

죽이기 $ (lsof -ti : 3001,3000)

단일 명령으로 82499 및 82500 프로세스를 모두 종료합니다.

package.json스크립트 에서 이것을 사용하려면 :

"scripts": {
"start": "kill $(lsof -ti:3000,3001) && npm start"
}


답변

이 단일 명령 행은 기억하기 쉽습니다.

npx kill-port 3000

검색 기능이있는보다 강력한 도구 :

npx fkill-cli


추신 : 그들은 타사 자바 스크립트 패키지를 사용합니다. npxNode.js에 내장되어 있습니다.

출처 : 트윗 | 깃 허브


답변

사용할 수 있습니다 lsof -i:3000.

바로 “List Open Files”입니다. 프로세스 목록과 이들이 사용하는 파일 및 포트 목록이 제공됩니다.