내 tcp 포트를 청취 / 사용하는 프로세스를 어떻게 찾아서 죽이나 요? Mac OS X에 있습니다.
때로는 충돌이나 버그가 발생한 후 레일 앱이 포트 3000을 잠그고 있습니다. ps -ef를 사용하여 찾을 수 없습니다 …
할 때
rails server
나는 얻다
이미 사용중인 주소-bind (2) (Errno :: EADDRINUSE)
2014 년 업데이트 :
아래의 답변 중 일부를 완료하려면 kill 명령을 실행 한 후 pid 파일을 삭제해야합니다. rm ~/mypath/myrailsapp/tmp/pids/server.pid
답변
-
당신은 시도 할 수 있습니다
netstat
netstat -vanp tcp | grep 3000
-
대한 맥 OS 엘 캐피 탄 과 새 (또는 NETSTAT이 지원하지 않는 경우
-p
), 사용lsof
sudo lsof -i tcp:3000
-
대한 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"
}
