Nohup 과 &(백그라운드) 명령어 사용법
Nohup 과 &(백그라운드) 명령어 사용법
&(백그라운드)
백그라운드 명령은 언제 사용할까?
특정 프로그램을 이용하여 계속적인 모니터링을 해야 하는 프로그램이 있을 경우 프로그램 실행후 다른 명령어를 입력하려 현재 빠져나와 버리면 프로그램도 종료 됩니다.
이럴 경우 백그라운드 명령을 실행하는데 다음과 같습니다.
./myscript.sh & // 명령어 뒤에 "&" 만 붙이면 끝
위와 같이 실행하면 현재 명령창을 나와도 계속 실행됩니다. 그러나 콘솔창을 닫으면(session이 종료되면) 백그라운드 명령도 멈추게 되는데 그 부분을 보완하는 것이 nohub 입니다. (요즈음은 session을 닫아도 실행되는 경우가 있음.)
nohub
session 종료후에도 계속적인 프로그램 실행을 위해 nohub을 사용합니다.
아래와 같이 백그라운드 명령과 함께 사용하기를 추천 드립니다.
실행
nohub ./myscript.sh &
종료
종료시는 process id(PID)를 이용하여 kill 을 이용하여 종료하여야 합니다.
ps -ef | grep myscript.sh
kill -9 PID
Log
실행동안 발생한 log를 사용하기 위해서 아래와 같이 처리합니다.
-
>
overWrite: 기존 파일을 덮어씌운다. -
>>
append: 기존 파일의 아래에 추가한다.
nohup myscript.sh >> ./myscript.log &
nohup myscript.sh > ./myscript.log & 2>&1 &
nohup myscript.sh 1 > ./myscript.log & 2 > myscript.err & // 표준출력과 표준에러를 다르게 사용할 경우
- 0 : 표준입력(standard input)
- 1 : 표준출력(standare output)
- 2 : 표준에러(standard error)