본문으로 바로가기

[Linux] nohup 명령어 정리

category OS 2020. 7. 22. 10:34

나의 경우, Linux 환경에서 Java 로 구성된 서비스 파일(.jar) 을 백그라운드에서 사용하기 위해 사용한 명령어이다.

 

간혹 스크립트 구성이나 파일 실행시 까먹는 경우가 많은데,

 

이에 대비하기 위해 간단히 정리해둔다.

 

 

- 사용용도

1. 표준 출력을 nohup.out (또는 다른곳) 으로 출력하기 위해 사용

2. 백그라운드를 통해 해당 파일을 실행하기 위해 사용

 -> 터미널 세션이 끊겨도 계속 작동하기 위함

 

- 사용법

# nohup xxxx (실행명령어) &

 

 

- 주의사항

> 위 명령어 사용시 nohup.out 파일이 생성되며 출력이 여기에 쌓이게 된다.

  (아래 출력 변경 방법 통해 해결 가능)

> 맨 뒤에 & 를 붙이는 이유는 백그라운드로 실행하기 위함이다.

   이 명령어만으로도 백그라운드로 실행하게 할 수 있지만,

     세션 끊김이나 hang 발생시 문제발생 방지를 위해 nohup 을 사용한다

 

 

- 출력 변경

# nohup xxxx 1>/dev/null 2> &1 &

>  1>/dev/null  =>  표준출력(1) 을 /dev/null 로 보낸다

>  2> &1   => 표준에러(2)를 1의 주소위치로 보낸다 (마찬가지로 /dev/null로 보내짐)

 

 

결과적으로 나는 아래 명령어를 통해 jar파일을 실행한다

 

# nohup java -jar defian.jar 1>/dev/null 2>&1 &