O aprendizado do Springboot finalmente chegou ao fim, mas ainda nos deixa com uma pergunta, ou seja, como o programa deve ser implantado no servidor Linux? O programa será desligado se o SSH estiver desconectado após o início do programa com o comando? O primeiro problema é mais fácil de resolver. Você só precisa garantir que o JDK esteja instalado corretamente e não haverá grandes problemas. O problema complicado é o último. A chave para resolver o problema é garantir que o programa seja executado em um processo Daemon (plano de fundo). Desta vez, compartilharei como implantar corretamente programas em Linux
Para resolver esse problema, verifiquei as informações na Internet e encontrei as 3 soluções a seguir
1 jarra de embalagem no serviço do sistema (não recomendado)
A desvantagem desse método também é bastante óbvia, ou seja, o serviço é propenso a não ser iniciado, porque diferentes distribuições Linux têm mais ou menos diferenças na mesma medida.
2 Use o comando Nohup para cooperar com Kill -9 XXX
Esse método é mais fácil de aceitar e também é um compromisso, mas será mais problemático interromper o programa e usar o comando para encontrar o processo e depois usar o Kill -9.
3 Use tela, tmux, etc. (recomendado)
Considerando esse método de forma abrangente, é mais científico porque fornece uma interface unificada e funções correspondentes para gerenciar várias sessões, o que é mais fácil de operar. A desvantagem é que ela requer um pouco de custo de aprendizado.
Comandos TMUX comumente usados:
$ tmux novo -s session -name Crie nova sessão
$ tmux a -t session -name acesso à sessão especificada
$ tmux retach /$ ctrl-b d desconecte a sessão atual
$ tmux kill-session -t session-name Fechar a sessão
$ tmux ls mostra todas as sessões
Comandos de tela comuns:
$ Screen -S Window -NAME Crie uma nova sessão
$ SLIEL -R Número ou nome da sessão para acessar a sessão/sessão de reconexão especificada
$ tela -ls mostra todas as sessões
Ctrl+ab separa a sessão atual
Ctrl+Ak
A seguir, são suas diferenças. Embora o TMUX seja mais avançado, como escolher depende dos hábitos de uso de todos
O TMUX é muito semelhante à tela, mas melhor que a tela. Para perguntar onde estão as coisas boas, a resposta simples é que, embora as funções da tela sejam as mesmas, o TMUX foi projetado melhor. A tela está disponível, mas não estável.
Aqui estão alguns lugares onde o tmux vai além da tela:
O Springboot é mais conveniente de usar o Maven para embalar. Verifique a configuração do pom.xml ao embalagem para garantir que haja as seguintes configurações:
<uff> <flugins> <flugin> <puperid> org.springframework.boot </foupid> <TRarifactId> Spring-boot-maven-plugin </artifactId> <figuration> <!-fork: sem essa configuração, o devTools não funcionará, ou seja, o aplicativo-não renderá <kks> <lks> <lks> <lks> <lks> <Comestable> true </conformable> </figuration> </plugin> </plugins> lt;/build>
Basta usar a instalação do Maven para embalagem. Se o pacote encontrar com sucesso o jar correspondente e renunciar, faça o upload no servidor Linux para autorização.
Dessa forma, o aplicativo é iniciado, mesmo que a linha de comando esteja fechada ou desconectada do SSH, ele não afetará a operação normal do programa.
Desconectar
Depois que a sessão terminar, o programa é desligado, como mostrado abaixo
O uso da tela é semelhante ao TMUX. Ele foi praticado aqui, então implanto o programa para executar em segundo plano. O efeito da seleção da tela e do TMUX é semelhante.
PS: Aqui está uma descrição da implantação do Spring-Boot no Linux
Primeiro, o Maven limpe o projeto, depois o MAVEN instale -o em um pacote JAR no projeto e exclua a versão anterior do processo no Linux.
Verifique o comando ps -ef | Java Grep
Matar o processo de matar -9 número do processo
Execute o projeto Spring -Boot diretamente nohup java -jar sinocube.jar e use nohup para terminar com &
Nohup retorna para sair arquivos de log. O arquivo de log pode personalizar o nome do arquivo, o padrão é nohup.nohup.out
gat nohup.out View Log Nohup.out é o nome do arquivo caudf nohup.out View Log in Time Real