нуждаться
Для развертывания проекта 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