고급 Ubuntu

nohup

개요

 HUP(hangup) 신호는 전통적으로 터미널이 의존 프로세스들에게 로그아웃을 알리는 방식이다. # nohup 명령은 HUP 신호를 무시하기 위한 POSIX 명령어이다. SSH 세션으로 원격 작업을 할 때, 네트워크 장애로 인해 SSH 세션이 끊기거나 임의로 로그오프하는 순간 작업 중이던 프로세스가 종료되는 것을 방지하기 위해 사용된다.

백그라운드 전환

nohup <YOUR-COMMAND> &

 이 이후에는 exit를 통해 SSH 세션을 종료하더라도 명령이 백그라운드에서 계속 실행된다. jobs 명령을 통해 현재 백그라운드 명령 조회 및 포그라운드 전환을 할 수 있다.

출력 리디렉션

 nohup 명령이 수행되는 동안 표준 출력 결과를 특정 파일로 리디렉션할 수 있다.

nohup <YOUR-COMMAND> > print.log &

 리디렉션을 하지 않으면 현재 디렉터리에 nohup.out 파일을 생성해 출력을 저장한다. 아무 출력 결과도 저장하고 싶지 않다면,

nohup <YOUR-COMMAND> > /dev/null &

 표준 오류 또한 출력하고 싶지 않다면,

nohup <YOUR-COMMAND> > /dev/null 2>&1 &
 python 명령을 표준 출력 리디렉션과 함께 nohup으로 실행하는 경우 출력은 버퍼링을 통해 파일에 저장된다. 버퍼를 사용하지 않고 즉각적으로 출력하기 위해서는 python -u 옵션으로 명령을 실행한다.
 

댓글

댓글 본문
버전 관리
Hyunseok Lim
현재 버전
선택 버전
graphittie 자세히 보기