본문 바로가기

Development/OS

[Mac] 열려 있는 포트 확인하고 프로세스 종료 시키기

728x90

프로세스 찾기

가끔 종료 시켰는데 정상적으로 종료되지 않아서 프로세스가 남아 포트를 점유하고 있는 상황이 발생한다. 내 경우는 Windows에서는 꽤 빈번하게 발생해서 netstat를 잘 쓰니까 커맨드를 안 잊어버리는데 Mac에서는 잘 안 쓰다보니까 자꾸 까먹어서 이렇게 포스팅 남긴다.

sudo lsof -P -i :[포트번호]

[포트번호] 부분을 각자 검색하려는 포트 번호로 변경하여 실행하면 다음과 같은 결과를 얻을 수 있다.

 

lsof 실행결과

실행결과를 보면 알겠지만 NAME 부분에서 *:4040이 내가 검색하려고 한 프로세스이다. 때에 따라서 * 부분이 달라질 수 있다.(리슨 대상에 따라서 달라진다.) 하나의 프로세스만 나오는 게 아니라 여러 프로세스가 나오는 이유는 여러가지가 있겠지만 이 경우엔 바라보고 있는 프로세스도 있어서 그렇다. 여하튼 해당 프로세스를 종료 시켜보자. 이건 누구나 다 아는 kill 커맨드를 사용하면 된다.

프로세스 종료

sudo kill -9 [PID]

이렇게 실행하면 되고, PID는 lsof 결과에 나오는 PID를 그대로 입력하면 된다.

kill 실행 결과

제대로 종료 시켰으면 위의 실행결과 스샷처럼 아무것도 안 나오게 된다. (바라보고 있던 프로세스도 열린 포트가 없어지면서 끊기면서 더 검색되지 않는다.)

Kill on just one command

응용으로 이렇게 한 번에 끝낼 수도 있다.

 

lsof -P -i :[Port] |grep LISTEN |awk '{print $2}' |xargs kill -9

 

반응형