Preloader image
DDD

리눅스

nohup 사용하기

작성자 관리자 (admin)
조회수 1,430
입력일 2022-05-28 11:06:44

nohup 명령어는 터미널의 사용자가 실행 시킨 명령어를 계속 유지 시켜주는 역할을 합니다.

$ nohup displayABC.sh &

&는 콘솔에서 logout 하여도 해당 서버에 계속 실행되는 상태로 만듭니다.

실행 후 nohup.out 이라는 파일에 로그를 계속 축적하게 됩니다.

로그 위치 및 로그명 변경은

$ nohup displayABC.sh & > /logs/shell/displayABC.log

남기고 싶지 않다면

$ nohup displayABC.sh & > /dev/null

프로세스 기동 확인

$ shopt | grep displayABC
또는
$ ps ax | grep displayABC

P.S.
Java 클래스를 nohup을 사용하여 실행하는 방법은 다음과 같습니다:

# nohup java -cp your_classpath your_main_class &
위 명령에서 다음을 변경해야 합니다:

your_classpath:
실행하려는 Java 클래스 및 종속성에 대한 클래스 경로를 지정해야 합니다.
필요한 JAR 파일이나 클래스 디렉토리의 경로를 쉼표로 구분하여 나열할 수 있습니다.

your_main_class:
실행하려는 Java 클래스의 메인 클래스 이름을 지정해야 합니다.
예를 들어, com.example.MyApplication이라는 메인 클래스를
가진 Java 애플리케이션을 실행하고자 한다면, 다음과 같은 명령을 사용할 수 있습니다:

# nohup java -cp path/to/your/application.jar com.example.MyApplication &
위 명령은 path/to/your/application.jar 경로에 있는 JAR 파일에서 com.example.MyApplication
클래스를 실행하고, nohup을 사용하여 백그라운드에서 실행합니다.
실행 중에 발생하는 표준 출력 및 표준 에러는 nohup.out 파일로 리다이렉션됩니다.

nohup을 사용하여 Java 클래스를 실행하면 해당 클래스의 main 메서드가 호출되어 애플리케이션이 시작됩니다.
애플리케이션은 백그라운드에서 계속 실행되며, 터미널 세션을 종료해도 실행이 유지됩니다.

^