[Linux_bash] nohup: 백그라운드 작업
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