SpringBoot에서 생성한jar 패키지 백그라운드 실행

3230 단어
1. 자바-jar 직접 실행
방식 1
java -jar app.jar특징: 현재 ssh 창이 잠겨 있습니다. Ctrl+C로 프로그램을 끊거나 창을 직접 닫을 수 있습니다. 프로그램이 종료되면 어떻게 창을 잠그지 않습니까?
방식 2 &
java -jar app.jar & & & 대표가 백엔드에서 실행됩니다.특정: 현재 ssh 창은 잠겨 있지 않지만, 창이 닫히면 프로그램이 실행을 중지합니다.창을 닫을 때 프로그램이 실행되도록 계속 개선합니까?
모드 3 nohup 명령
설명: nohup Command [Arg...][&] 설명: nohup 명령은 Command 매개 변수와 관련된 Arg 매개 변수에 의해 지정된 명령을 실행하고 모든 끊기(SIGHUP) 신호를 무시합니다.로그아웃 후 nohup 명령을 사용하여 백엔드에서 프로그램을 실행합니다.백엔드에서 nohup 명령을 실행하려면 명령의 끝에 & ("and"를 나타내는 기호) 를 추가하십시오.nohup java -jar app.jar & nohup은 실행 명령을 끊지 않고 계정이 종료되거나 터미널이 닫힐 때 프로그램이 실행된다는 뜻입니다
방식 4 출력 파일 지정하기
nohup.로 기본 출력out 파일**nohup java-jar app.jar>output2>&1 & ** 설명: 운영체제에서 자주 사용하는 세 가지 흐름이 있습니다. 0: 표준 입력 흐름stdin 1: 표준 출력 흐름stdout 2: 표준 오류 흐름stderr는 일반적으로 >output을 사용하는데 실제는 1>output의 생략용법입니다.&1이라는 뜻은 표준 오류(2)를 표준 출력(1)으로 바꾸고 표준 출력은 파일output에 가져오기 때문에 표준 오류와 표준 출력은 파일output에 가져온다는 뜻이다.표준 오류를 표준 출력으로 다시 지정해야 하는 이유는 stderr에 버퍼가 없고 stdout에 있는 것으로 귀결됩니다.이로 인해 > output 2 > output 파일 output이 두 번 열리고 stdout과 stderr가 덮어쓰기 경쟁을 하게 됩니다.이것이 바로 왜 누군가가'nohup.'이라고 썼는가.command.sh>output 2>output 오류 원인jobs 명령 백엔드 실행 작업 보기 fg 명령 어떤 작업을 백엔드 제어로 되돌려줍니다
2. 시스템 서비스
Spring Boot의 Maven 플러그인에 전체 실행 가능한 프로그램을 구축하는 기능도 제공했는데 무슨 뜻입니까?즉, 우리는 자바-jar를 사용하지 않고 자바를 직접 실행해서 프로그램을 실행할 수 있다.이렇게 하면 우리는 편리하게 그것을 시스템 서비스로 만들어 백엔드에서 운행할 수 있다.
주요 단계는 다음과 같습니다.
1.pom에서.xml에 Spring Boot 플러그인을 추가하고 executable 설정을 주의하십시오
    
    org.springframework.boot   
    spring-boot-maven-plugin    
           
        true    
    


2. 상기 설정을 완성한 후 mvn 패키지로 포장하여 실행 가능한jar 패키지 3을 구축하고,jar 패키지에chmod u+x app를 수여합니다.jar 4,/etc/init에 소프트 연결 만들기d/디렉토리에서 ln-s/usr/local/app/app.jar/etc/init.d/app5, 소프트 연결 생성을 완성한 후에 우리는 다음과 같은 명령을 통해 app에 대한 작업을 할 수 있습니다.jar 응용 프로그램은 서비스 app start|stop|restart|status 기본 응용 프로그램pid:/var/run/app/app를 제어합니다.pid 기본 로그 디렉터리:/var/log/app.log
사용자 정의 구성
jar 패키지와 같은 경로 아래에 하나를 만듭니다.conf 파일, 이름은.jar의 이름은 app와 같습니다.conf는 다음과 같은 관련 변수를 구성합니다.
LOG_FOLDER=/usr/local/app/logs/console //          
RUN_ARGS="--server.port=8080 --spring.profiles.active=dev"
JAVA_OPTS="-Ddubbo.registry.address=127.0.0.1:2181 -Ddubbo.protocol.port=20887 -Ddubbo.application.name=j-provider -Ddubbo.monitor.protocol=registry"

보안 설정
  • 서비스에 독립된 사용자bootapp를 만들고 이 사용자의 셸은/usr/sbin/nologin
  • 으로 귀속됩니다.
  • 앱을.jar의 소유자는 bootapp:chown bootapp:bootapp app입니다.jar
  • 최소 권한 부여:chmod 500 app.jar
  • 수정 금지: chattr + i app.jar
  • 대 app.conf 파일은 다음과 같이 처리됩니다:chmod 400 app.conf;chown root:root app.conf

  • FAQ:
    1、Unable to find Java
    해결 방법: 자바 명령의 소프트 링크를/sbin에 만듭니다. 예를 들어: ln -s/usr/local/jdk/bin/자바/sbin/자바
    참조:http://blog.csdn.net/qq_30739519/article/details/51115075 http://www.cnblogs.com/zq-inlook/p/3577003.html http://blog.didispace.com/spring-boot-run-backend/

    좋은 웹페이지 즐겨찾기