티스토리 뷰

Apple

nohup 과 백그라운드(&) 사용법

니용 2021. 4. 16. 18:23
반응형

리눅스를 사용하다가 보면 프로그램을 백그라운드에서 세션과의 연결이 끊어져도 돌려야할 일이 빈번하게 발생하는데요, 

이럴 때 사용하는 명령어가 바로 nohup 입니다. nohup 은 no hang up 이라는 끊지말라는 의미에서 생겼습니다.

사용법은 간단합니다. 앞에 nohup 만 붙이면 됩니다. 다만 실행시키고자 하는 프로그램은 755 permission이 등록되어야 합니다. 

Permission을 변경하는 방법은 아래와 같습니다.

$ sudo chmod 755 ./filename.ext

예를 들어 jar 파일을 실행시키고자 할 때는 다음과 같이 입력해주시면 됩니다.

## 현재 터미널에서 실행
$ java -jar sampleJava.jar

## nohup 으로 실행
$ nohup java -jar sampleJava.jar

표준 출력을 다른 파일에 쓰고 싶다면 아래와 같이 옵션을 추가하면 됩니다.

## 바탕화면에 보일 때
$ nohup java -jar sampleJava.jar > ~Desktop/print.out

## 표준출력 기록을 생략할 때
$ nohup java -jar sampleJava.jar > /dev/null

다음으로 백그라운드(&)에서 실행시키는 방법입니다.

$ java -jar sampleJava.jar &

여기서 위의 nohup과의 차이는, &은 실행을 사용자 눈에 보이지 않는 백그라운드 형태로 돌리고 있는 것이기 때문에 로그아웃으로 세션과 연결이 끊어지면 실행되고 있던 프로그램이 같이 종료되게 됩니다. 하지만 nohup은 프로그램을 데몬의 형태로 실행시키게 되므로 로그아웃으로 세션이 종료되더라도 프로그램이 종료되지 않습니다.


끝으로, 가장 확실하게 백그라운드에서 사용하는 방법은 두가지 모두 사용하는 것입니다. 

$ nohup java -jar sampleJava.jar &
반응형
댓글
공지사항