본문 바로가기
Computer Science/[19-상] Linux Bash Script

[Linux_bash] nohup: 백그라운드 작업

by gojw 2020. 2. 2.

nohup 명령어는 non-tty, 즉 터미널이 끊겨진 상태( log out, exit the shell )

에서도 명령어를 실행하는 역할을 한다.

또한 stdout(표준출력)을 다른 파일(nohup.out 등)으로 돌린다.

 

nohup은 명령어의

stdin은 리눅스에서 휴지통 역할을 하는 디렉터리 /dev/null 로 redirection하고,

stdout은 nohup.out이라는 파일에 기록된다.

stderr는 stdout으로 취급하여 처리한다.

 

예를들어,

 

# mkdir 명령어로 direc1이라는 디렉토리를 생성하고

nohup 명령어와 함께 디렉터리를 지우는 경우

$ 설명 $

 

nohup rmdir direc1 &

-> direc1을 rmdir 명령어로 지운다.

 

nohup rmdir direc1 &

-> 터미널이 끊어진 상태에서도 명령어를 실행한다.

 

nohup rmdir direc1 &

-> 명령어를 백그라운드로 실행한다.

commandline & : 명령어 뒤에 &을 붙이면 명령어를 백그라운드로 실행한다.

 

nohup 명령어의 결과는 nohup.out이라는 파일에 저장된다.

위 경우에는 오류메세지가 없기 때문에 nohup,out에는 아무것도 기록되지 않는다.

 

# 오류메세지가 뜨는 경우

# 존재하지 않는 디렉터리 korea를 nohup 명령어와 함께 지우는 경우

$ 설명 $

 

korea라는 디렉터리는 존재하지 않기 때문에

rmdir를 쓰면 오류메세지가 뜬다.

nohup을 사용하면 오류메세지가 nohup.out이라는 파일에 기록된다.

 

아래에 나오는 25071은 프로세스 id (PID)이다.

프로세스 id와 kill 명령어를 이용해서 명령어 실행을 중단시킨다.

 

kill -9 25230

 

댓글