JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

특정 포트 번호에 실행되고 있는 프로세스 조회하기 / 포트 충돌 해결하기 (lsof) (

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
Linux
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 리눅스 입문/실전
slug
find-process-by-port-lsof
type
post
updatedAt
Dec 6, 2025 05:39 AM

✅ 실전에서 자주 만나는 에러

이전 강의에서 Spring Boot를 실행시켰더니 아래와 같은 에러가 발생한 걸 확인했다. 실제 현업에서도 Port 8080 was already in use와 같은 에러를 많이 만난다. 이 에러의 원인을 정확하게 파악하려면 포트(Port)에 대한 개념을 먼저 알아야 한다.
notion image
 
 

✅ 포트(Port)란?

포트(Port)란 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소를 의미한다.
하나의 컴퓨터에는 총 65536개(0~65535)의 포트 번호를 가지고 있다. Spring Boot와 같은 백엔드 서버를 실행시킬 때 어떤 포트에서 실행시킬 지 정해야 한다. 만약 아무런 설정을 하지 않으면 Spring Boot는 기본적으로 8080번 포트에서 실행하도록 작동한다.
주의할 점은 하나의 포트에는 단 하나의 프로세스만 실행시킬 수 있다는 점이다. 예를 들어, 8080번 포트에 이미 Spring Boot 서버가 실행되고 있다고 치자. 그런데 Node.js 서버를 8080번 포트에 띄우려고 하면 에러가 발생한다. 왜냐하면 하나의 포트에 이미 Spring Boot 프로세스가 실행되고 있기 때문이다.
 
포트(Port)의 개념을 이 정도까지만 알고 있어도 방금 전에 봤던 에러의 원인을 해석할 수 있다. 에러의 원인을 해석해보자.
 
 

✅ 에러 원인 해석하기

notion image
Port 8080 was already in use
→ 8080번 포트를 이미 사용하고 있다고 한다. 그런데 포트는 ‘한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소’라고 얘기했다. 즉, 8080번 포트에서 어떤 프로그램이 이미 실행되고 있다는 뜻이다. 그래서 Spring Boot를 실행시키려고 하는데 에러가 발생한 것이다.
 
그럼 8080번 포트에서 어떤 프로그램이 실행되고 있는 지 확인하려면 어떻게 해야 할까?
 
 

✅ 특정 포트 번호에 실행되고 있는 프로세스 조회하기

# sudo lsof -i:[포트번호] $ sudo lsof -i:8080
* 주의) sudo를 붙여야만 시스템 내의 모든 프로세스를 기반으로 특정 프로세스를 조회해준다.
notion image
8080번 포트에 실행되고 있는 프로세스가 조회됐다. 조회된 프로세스에서 2가지 항목만 위주로 보면 된다.
  • COMMAND : 프로세스를 실행시킬 때 사용한 명령어의 ‘일부’만 보여줌
  • PID : 프로세스를 식별하기 위한 ID
여기서 어떤 프로세스인지 COMMAND의 값의 일부인 java라는 키워드만 보고 유추할 수 있다면 상관없는데, 정확히 어떤 프로세스인지 모르겠다 싶을 땐 COMMAND의 전체를 볼 필요가 있다.
그럴 땐 COMMAND의 전체 값을 보여주는 ps aux 명령어를 활용하면 된다. 아래 명령어를 활용해 PID가 110225인 프로세스만 찾아 조회하는 것이다.
# 실행 중인 모든 프로세스 조회 + 110225라는 키워드가 들어간 문장만 출력 $ ps aux | grep 110225
notion image
그러면 구체적으로 어떤 명령어를 통해 프로세스를 실행시킨지 파악할 수 있게 되고, 그럼으로써 어떤 프로세스가 실행되고 있는 지 더 명확하게 파악할 수 있게 된다.
 
 

✅ 특정 포트 번호에 실행되고 있는 프로세스 종료하기

8080번 포트에 내가 원하는 프로세스를 실행시키기 위해, 기존에 8080번 포트에서 실행되고 있는 프로세스를 종료시켜보자.
# sudo lsof -i:[포트번호] $ sudo lsof -i:8080
notion image
위 명령어를 통해 8080번 포트에서 실행되고 있는 프로세스의 PID 값을 알아냈다. 그럼 이전에 배운 kill 명령어를 통해 프로세스를 종료시키면 된다.
$ kill 110225
 
정상적으로 프로세스가 잘 종료됐는 지 확인해보자.
$ sudo lsof -i:8080
notion image
 
그러고 내가 원하는 Spring Boot 서버를 실행시키자.
$ cd ~/linux-springboot/build/libs $ nohup java -jar linux-springboot-0.0.1-SNAPSHOT.jar &
 
잘 실행됐는 지 확인하기 위해 먼저 8080번 포트에서 실행된 프로세스를 조회해보자.
$ sudo lsof -i:8080
 
이번에는 포트 충돌 없이 잘 실행됐는 지 확인하기 위해 방금 실행 시킨 Spring Boot 서버의 로그를 확인해보자.
$ cat nohup.out
notion image
이번에는 Port 8080 was already in use와 같은 에러 메시지 없이 잘 실행됐음을 알 수 있다.
 
 
author
JSCODE 박재성
category
Linux
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 리눅스 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 05:28 AM
📎
이 글은 비전공자도 이해할 수 있는 리눅스 입문/실전 강의의 수업 자료 중 일부입니다.