포트중복해결(MAC OS)

ACAI BERRY DEVELOVER·2023년 6월 24일
0
post-thumbnail
  • 어플리케이션을 여러개 만들어 이것저것 구동하다 보니 해당 포트가 이용중이라는 메시지를 받아 앱 구동 실패했다.

  • 스프링부트의 application.properties에 해당 포트를 다른 포트로 변경했다. ex) 9090

  • 포트를 다른 걸로 변경해도 똑같이 이용중이라는 메시지만 뱉어냈다.

  • 이런 일이 흔하게 일어날 거 같아서 기록해둔다.

  • 터미널에 들어가서 해당 포트의 PID를 알아낸다.

    특정 포트를 사용하는 프로세스 정보 보기
    개인적으로 가장 많이 쓰는 명령어이다. -i 옵션뒤에 프로토콜과 포트를 명시해 주면 된다. 맥의 경우 netstat의 p옵션이 없기 때문에 lsof를 이용하시면 됩니다.

lsof -i tcp:8080

lsof 는 list open files 의 약자로 시스템에서 열린 파일 목록을 알려주고 사용하는 프로세스, 디바이스 정보, 파일의 종류등 상세한 정보를 출력해 준다.
리눅스와 유닉스는 추상화된 파일 시스템(VFS - Virtual File System)을 사용하므로 일반 파일, 디렉터리, 네트워크 소켓, 라이브러리, 심볼릭 링크 등도 모두 파일로 처리되며 lsof 에서 상세한 정보를 확인할 수 있다.
유닉스마다 고유의 lsof 와 비슷한 용도의 명령어가 있지만 명령어와 옵션이 제각각이고 출력 정보가 상이하여 OS 가 바뀌면 사용하기가 힘들다.
lsof 는 리눅스, AIX, Solaris, FreeBSD, Mac OS X 등 종류에 상관없이 일관된 옵션과 출력 형식을 갖는 장점이 있다.

  • sudo kill -9 1294[PID]를 입력한다.
  • 그러면 해당 포트의 프로세스는 중지된다.
  • 다만 내가 참조한 블로그에서 kill -9는 안전하게 끄는 법이 아니라고 한다.
  • 안전하게 끄는 법은 아래 참조블로그 확인할 것.


Last login: Sun Jun 25 01:58:46 on ttys000
nam-ayeon@nam-ayeon-ui-MacBookAir-92 ~ % lsof -i tcp:8080
COMMAND  PID      USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    1294 nam-ayeon   96u  IPv6 0xb9fbce850f084981      0t0  TCP *:http-alt (LISTEN)
nam-ayeon@nam-ayeon-ui-MacBookAir-92 ~ % sudo kill -9 1294
Password:
Sorry, try again.
Password:
nam-ayeon@nam-ayeon-ui-MacBookAir-92 ~ % lsof -i tcp:8080
nam-ayeon@nam-ayeon-ui-MacBookAir-92 ~ % 

kill -9 로 프로세스를 종료하면 시스템에 악영향을 줄 수 있습니다.
대신 kill -INT 나 kill -TERM 을 사용하세요.

Reference: https://www.lesstif.com/system-admin/lsof-20776078.html

profile
쓸때 대충 쓰지 말고! 공부하면서 써!

0개의 댓글