Развертывание проекта SpringBoot (jar), сценарий запуска

нуждаться

Для развертывания проекта SpringBoot (jar) необходимо сначала закрыть исходный проект, а затем запустить новый проект. Непосредственный ввод команд требует много времени и труда и подвержен ошибкам. Итак, начнем со сценария.

Скрипт

Имя сценария: start.sh
этот сценарий необходимо поместить в тот же каталог, что и пакет jar, чтобы пакет jar можно было правильно найти.

#!/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系统"

команда запуска

В каталоге, где находится скрипт, выполните следующую команду:

sh start.sh

Обратите внимание на проблему

Назначение переменных оболочки, без пробелов до и после знака равенства

Вначале, когда я присваивал значение pid, на левом и правом концах знака равенства стояли знаки равенства, что вызывало ошибку.

Решение nohup: перенаправление stderr на stdout

Необходимо вывести ошибку и также внести ее в журнал регистрации.
То есть в скрипт добавляется следующий абзац:

2>&1

Функция состоит в том, чтобы вывести ошибку на стандартный вывод, поскольку стандартный вывод выводится в журнал журнала, поэтому все это входные данные в журнал, так что командная строка не будет сообщать о вышеуказанном выводе.

Синтаксис переменных оболочки

Краткий синтаксис:

$pid

Полный синтаксис:

${pid}

Полный синтаксис приложения переменных должен не только включать $, но и заключать имя переменной в круглые скобки.
вставьте сюда описание изображения

ПС

Логика закрытия открытой службы заключается в непосредственном принудительном закрытии службы.

Лучший способ — позволить службе закрыться самостоятельно, а затем регулярно контролировать:
по истечении определенного периода времени, если программа была закрыта, запустить новый проект;
если время превышает указанное время, но все равно не удается успешно закрыть, принудительно закройте ее. , а затем начать новый проект.

Эту логику можно найти в ссылке «Справочник по сценариям» в конце.

Оболочка формата VSCode

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

ссылка

Ссылка на скрипт:

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

おすすめ

転載: blog.csdn.net/sgx1825192/article/details/132553621