Linux

Linux에서 nohup 사용법: 프로세스를 백그라운드에서 실행

Tech Energy 2024. 11. 26. 16:28
728x90
반응형

서버 환경에서 작업을 진행하다 보면 터미널을 종료해도 계속 실행되길 원하는 작업이 있을 때가 있습니다. 이럴 때 유용하게 사용할 수 있는 명령어가 바로 nohup입니다.


1. nohup 이란?

nohup은 "No Hang Up"의 약자로, 터미널 세션이 종료되어도 해당 프로세스가 중단되지 않도록 실행하는 Linux 명령어입니다. 일반적으로 백그라운드 작업을 실행할 때 사용됩니다.


2. 기본 사용법

nohup 명령어의 기본적인 사용 형식은 다음과 같습니다:

nohup [명령어] &
  • nohup: 터미널 종료 후에도 명령을 지속 실행하도록 설정.
  • &: 명령어를 백그라운드에서 실행.

예를 들어, 스크립트 my_script.sh를 백그라운드에서 실행하고 싶다면 다음과 같이 입력합니다:

nohup ./my_script.sh &
 
728x90

3. 실행 결과 확인

명령어를 실행하면 기본적으로 nohup.out 파일이 생성됩니다. 이 파일에는 실행 중 출력된 로그가 기록됩니다.

cat nohup.out
 

출력 파일 이름을 지정하고 싶다면 >를 사용해 리다이렉션합니다:

nohup ./my_script.sh > my_script.log 2>&1 &
 
  • > my_script.log: 표준 출력을 my_script.log 파일로 리다이렉션.
  • 2>&1: 표준 에러를 표준 출력으로 리다이렉션.

4. 백그라운드 프로세스 확인 및 관리

백그라운드에서 실행 중인 프로세스를 확인하거나 관리하려면 아래 명령어를 사용할 수 있습니다:

  • 프로세스 확인:
    ps aux | grep [프로세스명]
  • 작업 목록 확인:
    jobs
  • 프로세스 중지:
    kill [프로세스 ID]
     
반응형

5. nohupscreen, tmux 비교

  • nohup: 간단히 터미널 종료 후에도 프로세스를 유지할 때 사용.
  • screen 또는 tmux: 다중 세션을 관리하거나, 작업을 복잡하게 다뤄야 할 때 유용.

screen이나 tmux는 터미널 세션을 완전히 분리하여 관리할 수 있는 장점이 있지만, nohup은 더 간단한 작업에서 효과적입니다.


6. 예제: 백업 스크립트 실행

매일 밤 12시에 백업 스크립트를 실행하고 터미널을 종료하더라도 계속 실행되길 원한다고 가정해 보겠습니다:

nohup ./backup.sh > backup.log 2>&1 &
 

이제 터미널을 닫아도 backup.sh는 계속 실행됩니다. 로그는 backup.log에 기록됩니다.

728x90
반응형