본문 바로가기

Linux

[nohup] 프로세스 백그라운드 수행하기

리눅스 환경에서 오래걸리는 프로세스를 수행할 때 대부분 "&"을 사용합니다.
[root@sample.server : /home/user]$ ./process.sh &
백그라운드 수행

[root@sample.server : /home/user]$ ./process.sh
포그라운드 수행
백그라운드로 수행하면 포그라운드와 달리 다른 작업들을 계속 진행할 수 있는 장점이 있습니다

그런데...


exit 명령어 혹은 세션이 끊어질 경우 백그라운드로 수행되던 프로세스가 중단됩니다.
분명 &을 줘서 백그라운드로 수행했는데??
이상하다 싶어 구글링을 해보니.. 원래 & 옵션은 백그라운드 수행이 맞지만 세션이 끊기면 자동으로 함께 프로세스가 죽는다는 것을 알게되었고
저 역시 경험을 하게되었습니다.

그렇다면.. 방법이 없을까?하여 찾아본 명령어가 바로 nohup입니다.
[root@sample.server : /home/user]$ nohup ./process.sh
- 프로세스는 exit와 세션이 끊어져도 의도한대로 계속 수행하게 됩니다.
- 명령어를 수행시킨 경로에 nohup.out이라는 출력 파일이 생성됩니다 (echo와 같은 콘솔 출력시 저장)

nohup말고 screen이라는 명령어를 통해서도 백그라운드 실행이 가능하다고 하는군요

관련 참조 링크

- http://brownbears.tistory.com/164
- http://jamesku.tistory.com/entry/linux%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C-%EC%8B%A4%ED%96%89
- http://changpd.blogspot.jp/2013/04/linux-nohup-xxxsh.html
- http://shinobi.tistory.com/entry/SCREEN-%EC%82%AC%EC%9A%A9%EB%B2%95
- https://kldp.org/node/87464