질문자 :oma
내 tcp 포트를 수신/사용하는 프로세스를 어떻게 찾고 종료합니까? 저는 맥 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
macOS El Capitan 이상(또는 netstat가 -p
지원하지 않는 경우)의 경우 lsof
lsof -i tcp:3000
Centos 7의 경우:
netstat -vanp --tcp | grep 3000
ghostdog74찾다:
sudo lsof -i :3000
죽임:
kill -9 <PID>
Filip Spiridonov빠르고 쉬운 솔루션 :
단일 포트를 죽이는 경우:
kill -9 $(lsof -ti:3000)
여러 포트의 경우:
kill -9 $(lsof -ti:3000,3001)
#3000은 해제할 포트입니다.
한 줄 명령으로 여러 포트 종료:
kill -9 $(lsof -ti:3000,3001)
#여기서 여러 포트 3000 및 3001은 해제할 포트입니다.
lsof -ti:3000
82500(프로세스 ID)
lsof -ti:3001
82499
lsof -ti:3001,3000
82499 82500
죽이기 -9 $(lsof -ti:3001,3000)
단일 명령으로 82499 및 82500 프로세스를 모두 종료합니다.
package.json
스크립트에서 이것을 사용하려면:
"scripts": { "start": "kill -9 $(lsof -ti:3000,3001) && npm start" }
Abhijith Sasikumar위의 어떤 것도 나를 위해 일하지 않았습니다. 내 경험이 있는 다른 사람은 다음을 시도할 수 있습니다(저를 위해 일함).
운영:
lsof -i :3000 (where 3000 is your current port in use)
보고된 PID의 상태를 확인하십시오.
ps ax | grep <PID>
마지막으로 "그것과 함께 시작":
kill -QUIT <PID>
Austin포트 3000을 사용하여 프로세스의 PID를 추출하고 종료하는 단일 라이너입니다.
lsof -ti:3000 | xargs kill
-t 플래그는 lsof 출력에서 PID를 제외한 모든 것을 제거하므로 쉽게 죽일 수 있습니다.
Zlemini 이 단일 명령줄은 기억하기 쉽습니다.
npx kill-port 3000
한 번에 여러 포트를 종료할 수도 있습니다.
npx kill-port 3000 3001 3002
보다 강력한 검색 도구:
npx fkill-cli
추신: 그들은 타사 자바 스크립트 패키지를 사용합니다. npx
는 Node.js에 내장되어 있습니다.
출처: 트윗 | 깃허브
Bruno Lemoslsof -i:3000
사용할 수 있습니다.
그것은 "열린 파일 나열"입니다. 이것은 프로세스 목록과 그들이 사용하는 파일과 포트를 제공합니다.
DerMike그런 프로세스를 강제 종료하려면 다음 명령을 사용하십시오.
lsof -n -i4TCP:3000 OR lsof -i:3000
여기서 3000은 프로세스가 실행 중인 포트 번호입니다.
이것은 프로세스 ID(PID)를 반환하고 실행합니다.
kill -9 "PID"
PID를 첫 번째 명령을 실행한 후 얻은 숫자로 바꿉니다.
Tadele Ayelegn.bash_profile
에서 3000 프로세스 terminate
하기 위한 바로 가기를 만듭니다.
terminate(){ lsof -P | grep ':3000' | awk '{print $2}' | xargs kill -9 }
그런 다음 차단된 경우 $terminate
alexzg다중 포트를 죽이기 위해.
$ npx kill-port 3000 8080 8081 Process on port 3000 killed Process on port 8080 killed Process on port 8081 killed
이 도움을 바랍니다!
Binh Holsof -P | grep ':3000' | awk '{print $2}'
이렇게 하면 MacOS에서 테스트한 pid만 제공됩니다.
KrisOS-X El Captain의 명령줄에서 실행:
kill -kill `lsof -t -i tcp:3000`
lsof의 간결한 옵션은 PID만 반환합니다.
JE42포트에서 프로세스를 종료하는 방법 중 하나는 python 라이브러리인 freeport( https://pypi.python.org/pypi/freeport/0.1.9 )를 사용하는 것입니다. 설치가 완료되면 다음을 수행합니다.
# install freeport pip install freeport # Once freeport is installed, use it as follows $ freeport 3000 Port 3000 is free. Process 16130 killed successfully
YBathia포트를 차단하는 프로세스를 보려면:
netstat -vanp tcp | grep 3000
포트를 차단하는 프로세스를 종료하려면:
kill $(lsof -t -i :3000)
Henry열린 연결 찾기
lsof -i -P | grep -i "듣다"
프로세스 ID로 종료
kill -9 'PID'
Sourabh Bhagat찾아 죽이기:
이 단일 명령줄은 쉽고 올바르게 작동합니다.
kill -9 $(lsof -ti tcp:3000)
Dylan Breugne이를 달성하는 가능한 방법:
맨 위
top 명령은 시스템의 리소스 사용량을 보고 가장 많은 시스템 리소스를 차지하는 프로세스를 확인하는 전통적인 방법입니다. 맨 위에는 가장 많은 CPU를 사용하는 프로세스가 맨 위에 있는 프로세스 목록이 표시됩니다.
추신
ps 명령은 실행 중인 프로세스를 나열합니다. 다음 명령은 시스템에서 실행 중인 모든 프로세스를 나열합니다.
ps -A
다른 명령을 사용하지 않고 특정 프로세스를 검색하기 위해 grep을 통해 출력을 파이프할 수도 있습니다. 다음 명령은 Firefox 프로세스를 검색합니다.
ps -A | grep firefox
프로그램에 신호를 전달하는 가장 일반적인 방법은 kill 명령을 사용하는 것입니다.
kill PID_of_target_process
이소프
열려 있는 모든 파일과 파일을 연 프로세스의 목록입니다.
lsof -i -P | grep -i "listen" kill -9 PID
또는
lsof -i tcp:3000
smoothlsof -i tcp:port_number
- 해당 포트에서 실행 중인 프로세스를 나열합니다.
kill -9 PID
- 프로세스를 종료합니다.
귀하의 경우에는
lsof -i tcp:3000
터미널에서 프로세스의 PID 찾기
kill -9 PID
Shan이 두 명령은 서버 프로세스를 찾고 종료하는 데 도움이 됩니다.
- lsof -wni tcp:3000
- 죽이기 -9 PID
Saif chaudhry나는 이것을 위해 작은 기능을 만들었습니다. rc 파일( .bashrc
, .zshrc
)에 추가하십시오.
function kill-by-port { if [ "$1" != "" ] then kill -9 $(lsof -ni tcp:"$1" | awk 'FNR==2{print $2}') else echo "Missing argument! Usage: kill-by-port $PORT" fi }
kill-by-port 3000
을 입력하여 레일스 서버를 종료할 수 있습니다(실행 중인 포트에 대해 3000 대체)
실패하면 항상 rails 루트 디렉토리에서 kill -9 $(cat tmp/pids/server.pid)
를 입력할 수 있습니다.
Caleb Keene~/.bash_profile
추가:
function killTcpListen () { kill -QUIT $(sudo lsof -sTCP:LISTEN -i tcp:$1 -t) }
그런 다음 source ~/.bash_profile
및 실행
killTcpListen 8080
rofrolsindresorhus 의 fkill 도구를 사용하여 다음을 수행할 수 있습니다.
$ fkill :3000
Kodie Granthamkill -9 $(lsof -ti:3000)
항상 macOS에서 작동합니다.
node.js 프로젝트에서 작업하는 경우 다음과 같이 package.json 스크립트에 추가할 수 있습니다.
"scripts": { ... "killme": "kill -9 $(lsof -ti:3000)", ... },
그 다음에
npm run killme
--
또한 macOS에 대한 시스템 전체 별칭을 추가하려면 다음 단계를 따르세요.
홈 디렉토리로 이동합니다.
CD ~
nano 또는 vim을 사용하여 .bash_profile 또는 zsh 프로필을 엽니다.
vi .bash_profile
별칭 추가(i 누름):
별칭 killme="킬 -9 $(lsof -ti:3000)"
파일을 저장
터미널 다시 시작
터미널에 killme
입력
물론 포트 3000을 원하는 것으로 변경할 수 있습니다.
hakiko노드 를 종료하는 데 적합합니다(Mac OS Catalina).
killall -9 node
Abdul SaleemTL;DR:
lsof -ti tcp:3000 -sTCP:LISTEN | xargs kill
포트를 사용하는 클라이언트와 서버가 모두 있는 상황에 있는 경우, 예:
$ lsof -i tcp:3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 2043 benjiegillam 21u IPv4 0xb1b4330c68e5ad61 0t0 TCP localhost:3000->localhost:52557 (ESTABLISHED) node 2043 benjiegillam 22u IPv4 0xb1b4330c8d393021 0t0 TCP localhost:3000->localhost:52344 (ESTABLISHED) node 2043 benjiegillam 25u IPv4 0xb1b4330c8eaf16c1 0t0 TCP localhost:3000 (LISTEN) Google 99004 benjiegillam 125u IPv4 0xb1b4330c8bb05021 0t0 TCP localhost:52557->localhost:3000 (ESTABLISHED) Google 99004 benjiegillam 216u IPv4 0xb1b4330c8e5ea6c1 0t0 TCP localhost:52344->localhost:3000 (ESTABLISHED)
그렇다면 아마도 둘 다 죽이고 싶지 않을 것입니다.
이 상황에서 -sTCP:LISTEN
을 사용하여 수신 중인 프로세스의 pid만 표시할 수 있습니다. -t
terse 형식과 결합하면 프로세스를 자동으로 종료할 수 있습니다.
lsof -ti tcp:3000 -sTCP:LISTEN | xargs kill
Benjie이것을 시도해야 합니다. 이 기술은 OS 독립적입니다.
응용 프로그램 내부에는 tmp라는 폴더가 있고 그 안에는 pids라는 또 다른 폴더가 있습니다. 해당 파일에는 서버 pid 파일이 포함되어 있습니다. 해당 파일을 삭제하면 됩니다. 포트가 자동으로 죽습니다.
저는 이것이 쉬운 방법이라고 생각합니다.
Arun P다음은 이름 또는 포트로 여러 프로세스를 종료하는 도우미 bash 기능입니다.
fkill() { for i in $@;do export q=$i;if [[ $i == :* ]];then lsof -i$i|sed -n '1!p'; else ps aux|grep -i $i|grep -v grep;fi|awk '{print $2}'|\ xargs -I@ sh -c 'kill -9 @&&printf "X %s->%s\n" $q @';done }
용법:
$ fkill [process name] [process port]
예시:
$ fkill someapp :8080 node :3333 :9000
Miguel Mota당신은 이것을 시도 할 수 있습니다
netstat -vanp tcp | grep 3000
Foram내가 가장 좋아하는 한 줄짜리: sudo kill `sudo lsof -t -i:3000`
LowFieldTheoryMac에서 포트 3000을 종료하려면 아래 명령을 실행하십시오.
kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)
Sachin Kammar출처 : http:www.stackoverflow.com/questions/3855127/find-and-kill-process-locking-port-3000-on-mac