nohup은 no hang up
의 약자 입니다. 해석 그대로 "끊지마!" 입니다.
내가 세션과 연결을 종료해도 지금 실행시킨 프로그램을 종료하지 않게 하는 것입니다.
0 : 표준 입력
1 : 표준 출력
2 : 표준 에러
명령어
# 표준출력과 표준에러를 같은 파일에 쓰고 싶을 때
$ nohup ./my_shellscript.sh > nohup.out 2>&1 &
# nohup.out 확인
cd ~
tail -f nohup.out
$ nohup ./my_shellscript.sh > nohup_script.out
' > ' 또는 ' >> ' 와 같은 리다이렉션을 이용해서 다른 파일에 출력할 수 있습니다.
만약 어디에도 표준출력을 기록하고 싶지 않다면,
$ nohup ./my_shellscript.sh > /dev/null
/dev/null 을 덧붙이면 됩니다.
제 백그라운드로 세션 종료시에도 프로그램 종료 없이 실행시키는 법은 잘 알겠습니다. 그럼 이제 그만 실행시키고 싶을 때는 어떻게 할까요?
ps 명령어를 통해서 프로세스 아이디를 알아내고, kill 명령어로 프로세스를 종료시키면 됩니다.
### 프로세스 아이디 알아내기
$ ps -ef | grep "java"
### 프로세스 종료
$ kill -9 <프로세스 아이디>