Linux나 Unix 환경에서 작업할 때, 종종 프로세스를 백그라운드에서 오랫동안 실행해야 하는 경우가 있다. 이럴 때 유용한 명령어가 바로 nohup
이다. 이 글에서는 nohup
명령어의 사용법과 예제를 통해 프로세스를 백그라운드에서 실행하는 방법을 알아본다.
Nohup 명령어란?
nohup
은 “no hang up”의 줄임말로, 터미널 세션이 종료되거나 사용자가 로그아웃해도 프로세스가 계속 실행되도록 한다. nohup
명령어 뒤에 실행할 명령을 입력하면, 해당 명령은 백그라운드에서 실행되며 터미널 세션과 독립적으로 동작한다.
Nohup 사용 방법
nohup
명령어의 기본 사용법은 다음과 같다:
nohup command &
command
는 백그라운드에서 실행할 명령어나 스크립트이다.&
는 명령어를 백그라운드에서 실행하도록 지시한다.
예를 들어, my_script.sh
스크립트를 백그라운드에서 실행하려면 다음 명령어를 사용한다:
nohup ./my_script.sh &
Nohup 출력 리디렉션
기본적으로 nohup
은 출력을 nohup.out
이라는 파일에 저장한다. 이 파일은 명령어를 실행한 디렉토리에 생성된다. 출력 파일의 이름을 변경하거나 출력을 다른 파일에 추가하려면 다음과 같이 리디렉션을 사용한다:
nohup command > output.log 2>&1 &
> output.log
는 표준 출력을output.log
파일로 리디렉션한다.2>&1
은 표준 오류를 표준 출력으로 리디렉션하여 모든 출력이output.log
파일에 저장되도록 한다.
실행 중인 프로세스 관리
nohup
으로 실행한 프로세스는 백그라운드에서 독립적으로 실행된다. 이러한 프로세스를 관리하려면 다음 명령어를 사용할 수 있다:
ps
: 현재 실행 중인 프로세스 목록을 표시한다.kill
: 프로세스에 종료 시그널을 보낸다.
예를 들어, my_script.sh
를 실행한 후 해당 프로세스를 종료하려면 다음 단계를 수행한다:
ps
명령어로 프로세스 ID(PID)를 찾는다:
ps aux | grep my_script.sh
kill
명령어로 프로세스에 종료 시그널을 보낸다:
kill PID
여기서 PID
는 이전 단계에서 찾은 프로세스 ID이다.
nohup
명령어를 사용하면 터미널 세션이 종료되어도 프로세스를 백그라운드에서 계속 실행할 수 있다. 이는 장기 실행 작업이나 서버 프로세스를 관리할 때 특히 유용하다.