Implantação do projeto SpringBoot (jar), script de inicialização

precisar

Para implantação do projeto SpringBoot (jar), você precisa primeiro fechar o projeto original e, em seguida, iniciar um novo projeto. Inserir comandos diretamente é demorado e trabalhoso e está sujeito a erros. Então, comece com um script.

roteiro

Nome do script: start.sh
Este script precisa ser colocado no mesmo diretório do pacote jar, para que o pacote jar possa ser encontrado corretamente.

#!/bin/bash
echo "部署开始:XXX系统"

echo "关闭服务(已开启的服务)"
PID=$(jps -l | grep HelloWorld.jar | awk '{print $1}')
if [ -n "$PID" ];then
    kill -9 $PID
    echo "关闭服务:完成"
else
    echo "关闭服务:终止。无需关闭,没有已开启的服务"
fi

echo "启动服务"
nohup java -jar HelloWorld.jar > HelloWorld.log 2>&1 &

echo "部署完成:XXX系统"

comando de início

No diretório onde o script está localizado, execute o seguinte comando:

sh start.sh

Preste atenção ao problema

Atribuição de variável shell, sem espaços antes e depois do sinal de igual

No início, quando atribuí um valor ao pid, havia sinais de igual nas extremidades esquerda e direita do sinal de igual, o que causou um erro.

Resolva nohup: redirecionando stderr para stdout

É necessário exibir o erro e também inseri-lo no log de log.
Ou seja, o seguinte parágrafo é adicionado ao script:

2>&1

A função é enviar o erro para a saída padrão, porque a saída padrão é enviada para o log de log, portanto, tudo é inserido no log, de modo que a linha de comando não reportará a saída acima.

Sintaxe de variável de shell

Sintaxe curta:

$pid

Sintaxe completa:

${pid}

A sintaxe completa do aplicativo de variável não apenas deve incluir $, mas também colocar bons parênteses ao redor do nome da variável.
insira a descrição da imagem aqui

PS

A lógica de fechar o serviço aberto é forçar diretamente o fechamento do serviço.

A melhor maneira é deixar o serviço fechar sozinho e depois monitorar regularmente:
após um período de tempo, se o programa tiver sido fechado, inicie um novo projeto;
se ele exceder o tempo especificado e ainda assim não conseguir fechar com sucesso, force o fechamento. e, em seguida, inicie um novo projeto.

Essa lógica pode ser encontrada no link Referência de Script no final.

Shell de formato VSCode

http://www.taodudu.cc/news/show-4756426.html?action=onClick

referência

Referência do roteiro:

https://gitee.com/longzipeng/study_share/blob/master/web_demo/renren_deploy.sh

Acho que você gosta

Origin blog.csdn.net/sgx1825192/article/details/132553621
Recomendado
Clasificación