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

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

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

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

터미널 창을 끄더라도 프로그램이 계속 실행되도록 만들기 (nohup, &)

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

✅ 포그라운드(foreground), 백그라운드(background)란?

👨🏻‍🏫
터미널 창을 끄더라도 프로그램이 계속 실행되도록 만들기 전에, 포그라운드(foreground)와 백그라운드(background)의 개념이 어떤 건지부터 알아야 한다.
포그라운드(foreground)는 내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태를 뜻한다. 그러다보니 포그라운드 상태에서는 다른 프로그램을 조작할 수가 없다.
 
백그라운드(background)는 내가 실행시킨 프로그램이 컴퓨터 내부적으로 실행되는 상태를 의미한다. 그래서 프로그램이 어떻게 실행되고 있는 지에 대한 정보가 화면에 자동으로 출력되지는 않는다. 이런 특성 때문에 다른 명령어를 추가로 입력할 수도 있고, 새로운 프로그램을 조작할 수도 있다.
 
 

✅ 포그라운드(foreground)로 Spring Boot를 실행시켜보자.

  1. Spring Boot 서버 실행
    1. $ cd ~/linux-springboot/build/libs $ java -jar linux-springboot-0.0.1-SNAPSHOT.jar
      notion image
       
  1. 잘 작동하는 지 확인
    1. http://{EC2 인스턴스의 Public IP 주소}:8080 주소로 접속해보자.
      notion image
      notion image
       
  1. Spring Boot 서버를 실행시킨 채로 다른 명령어 입력해보기
    1. notion image
      내가 실행시킨 프로그램의 내용이 화면에서 실행되고 출력되는 상태인 포그라운드 상태로 실행되고 있기 때문에 아무런 명령어를 입력해도 반응이 없다. 만약 내가 Spring Boot 서버를 실행시켜놓고 다른 작업을 하고 싶다면, Spring Boot 서버를 백그라운드에서 실행시켜야 한다.
 
 

✅ 백그라운드(background)로 Spring Boot를 실행시켜보자.

  1. 기존 실행되고 있던 Spring Boot 서버 종료하기
    1. Ctrl + c로 종료시키기
       
  1. Spring Boot 서버가 잘 종료됐는 지 확인하기
    1. http://{EC2 인스턴스의 Public IP 주소}:8080 주소로 접속해보자.
      notion image
       
  1. Spring Boot를 백그라운드에서 실행하기
    1. 프로세스를 백그라운드에서 실행시키려면 명령어의 앞 부분에 nohup을 붙이고, 뒷 부분에 &를 붙이면 된다.
      $ nohup java -jar linux-springboot-0.0.1-SNAPSHOT.jar &
      notion image
      위 명령어를 입력한 뒤에 Enter를 눌러보면 새로운 명령어를 입력할 수 있다.
       
  1. Spring Boot 서버가 잘 실행되고 있는 지 확인하기
    1. IP 주소로 접속해보기
      1. notion image
         
    2. 리눅스 명령어로 확인해보기
      1. $ ps aux | grep java
        ** 백그라운드로 서버를 실행시켰기 때문에 같은 터미널 창에서 명령어를 추가로 입력할 수 있는 것이다.
       
  1. 터미널 창을 끄더라도 잘 작동하는 지 확인하기
    1. IP 주소로 접속해보기
      1. notion image
         
    2. 터미널 창 새로 켜서 리눅스 명령어로 확인해보기
      1. $ ps aux | grep java
 
 

✅ 정리

서버를 실행시킬 때 24시간 내내 터미널 창을 켜놓을 순 없다. 따라서 서버를 실행시킨 뒤에 터미널 창을 끄더라도 프로세스가 계속 실행되어야 한다. 그럴 때 아래 명령어를 활용해서 백그라운드에 프로세스를 실행시키면 된다.
$ nohup [프로그램을 실행하는 명령어] &
 
author
JSCODE 박재성
category
Linux
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 리눅스 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 05:28 AM
📎
이 글은 비전공자도 이해할 수 있는 리눅스 입문/실전 강의의 수업 자료 중 일부입니다.