SpringBoot의 학습은 마침내 끝났지 만 여전히 Linux 서버에 프로그램을 어떻게 배포해야합니까? 명령으로 프로그램을 시작한 후 SSH가 연결이 끊어지면 프로그램이 종료됩니까? 첫 번째 문제는 해결하기가 더 쉽습니다. JDK가 올바르게 설치되어 있는지 확인하면 큰 문제가 없습니다. 까다로운 문제는 후자입니다. 문제를 해결하기위한 열쇠는 프로그램이 데몬 프로세스 (배경)에서 실행되도록하는 것입니다. 이번에는 Linux에서 프로그램을 올바르게 배포하는 방법을 공유하겠습니다.
이 문제를 해결하기 위해 인터넷에서 정보를 확인하고 다음 3 가지 솔루션을 찾았습니다.
1 개의 패키지 항아리에 시스템 서비스 (권장되지 않음)
이 방법의 단점은 또한 상당히 분명합니다. 즉, 다른 Linux 분포가 같은 범위와 다소 차이가 있기 때문에 서비스가 시작되지 않기 쉽습니다.
2 nohup 명령을 사용하여 킬 -9 xxx와 협력하십시오.
이 방법은 수락하기 쉽고 타협이지만 프로그램을 중지하고 명령을 사용하여 프로세스를 찾은 다음 킬 -9를 사용하는 것이 더 번거 롭습니다.
3 화면, tmux 등 사용 (권장)
이 방법을 포괄적으로 고려할 때, 통합 된 인터페이스와 해당 기능을 제공하여 여러 세션을 관리하기 쉽기 때문에보다 과학적입니다. 단점은 약간의 학습 비용이 필요하다는 것입니다.
일반적으로 사용되는 tmux 명령 :
$ tmux new -s session -name 새 세션을 만듭니다
$ tmux a -t 세션 -지정된 세션에 대한 액세스
$ tmux detach /$ ctrl-b d 현재 세션을 분리합니다.
$ tmux 킬-세션 -t 세션-세션을 닫습니다
$ tmux ls는 모든 세션을 보여줍니다
일반적인 화면 명령 :
$ Screen -S Window -Name 새 세션을 만듭니다
지정된 세션/재 연결 세션에 액세스하려면 $ Screen -R 세션 번호 또는 이름
$ screen -ls는 모든 세션을 보여줍니다
Ctrl+AB는 현재 세션을 분리합니다
ctrl+ak
다음은 차이점입니다. tmux는 더욱 발전하지만 선택하는 방법은 모든 사람의 사용 습관에 달려 있습니다.
Tmux는 화면과 매우 비슷하지만 화면보다 낫습니다. 좋은 일이 어디에 있는지 묻는 것은 간단한 대답은 화면의 기능이 동일하지만 TMUX는 더 잘 설계된다는 것입니다. 화면을 사용할 수 있지만 안정적 은지 않습니다.
다음은 Tmux가 화면을 넘어가는 곳입니다.
SpringBoot는 Maven을 사용하여 패키지를 사용하는 것이 더 편리합니다. 포장시 Pom.xml의 구성을 확인하여 다음 구성이 있는지 확인하십시오.
<빌드> <플러그인> <GroupIn> org.springframework.boot </groupId> <artifactId> Spring-Boot-Maven-Plugin </artifactId> <configuration> <!-포크 :이 구성이 없으면 DevTools가 작동하지 않으면 응용 프로그램이 다시 시작되지 않습니다. <Sexectable> true </executable> </configuration> </plugin> </plugins> lt;/build>
포장에는 Maven 설치 만 사용하십시오. 패키지가 해당 JAR을 성공적으로 찾아 이름을 바꾸면 Linux 서버에 업로드하여 권한을 부여하십시오.
이런 식으로 SSH에서 명령 줄이 닫히거나 분리 되더라도 프로그램의 정상 작동에는 영향을 미치지 않습니다.
연결을 끊습니다
세션이 완료되면 아래와 같이 프로그램이 종료됩니다.
화면 사용은 tmux와 유사합니다. 여기에서 실시되었으므로 백그라운드에서 실행하도록 프로그램을 배포합니다. 화면 및 Tmux를 선택하는 효과는 비슷합니다.
추신 : Linux에서 스프링 부츠 배포에 대한 설명은 다음과 같습니다.
먼저 Maven은 프로젝트를 청소 한 다음 Maven이 프로젝트의 JAR 패키지에 설치 한 다음 이전 버전의 프로세스를 Linux에서 삭제합니다.
명령 ps -ef |를 확인하십시오 Grep Java
킬 프로세스 킬 -9 프로세스 번호
스프링 보트 프로젝트를 직접 실행하여 java -jar sinocube.jar를 사용하고 nohup을 사용하여 끝납니다.
Nohup은 출력 로그 파일로 돌아갑니다. 로그 파일은 파일 이름을 사용자 정의 할 수 있고 기본값은 nohup.nohup.out입니다.
cat nohup.out보기 로그 nohup.out는 파일 이름 Tailf nohup.out 로그인 실시간입니다.