[root@linuxlocalhost sh]# ./bootStart.sh
./bootStart.sh:行1: o: 未找到命令
自动化部署脚本启动
=================================
停止原来运行中的工程
Stop Process...
Stop Success!
准备从Git仓库拉取最新代码
开始从Git仓库拉取最新代码
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 11 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (11/11), done.
来自 https://gitee.com/Shelena-E/giteecangku
64ad1c5..2e971cb master -> origin/master
更新 64ad1c5..2e971cb
Fast-forward
src/main/java/com/example/jardemo1/demos/web/BasicController.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
代码拉取完成
开始打包
启动项目
项目启动完成
[1]+ 退出 143 nohup java -jar /usr/local/app/jardemo1-0.0.1-SNAPSHOT.jar &>/usr/local/app/hello.log(工作目录:/usr/local/giteecangku/target)
(当前工作目录:/usr/local/sh)
更改bootStart.sh的脚本为
#!/bin/sh
echo "================================="
echo "自动化部署脚本启动"
echo "================================="
echo "停止原来运行中的工程"
APP_NAME=jardemo1
tpid=$(ps -ef | grep $APP_NAME | grep -v grep | grep -v kill | awk '{print $2}')
if [ -n "$tpid" ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}')
if [ -n "$tpid" ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo "准备从Git仓库拉取最新代码"
cd /usr/local/giteecangku
if [ $? -ne 0 ]; then
echo "无法进入 /usr/local/giteecangku 目录"
exit 1
fi
echo "开始从Git仓库拉取最新代码"
git pull
if [ $? -ne 0 ]; then
echo "Git 拉取代码失败"
exit 1
fi
echo "代码拉取完成"
echo "开始打包"
output=$(mvn clean package -Dmaven.test.skip=true)
if [ $? -ne 0 ]; then
echo "打包失败"
echo "$output"
exit 1
else
echo "打包成功"
echo "$output"
fi
echo "启动项目"
cd /usr/local/app
if [ $? -ne 0 ]; then
echo "无法进入 /usr/local/app 目录"
exit 1
fi
pwd # 确认当前目录
ls -l # 确认目录内容
nohup java -jar jardemo1-0.0.1-SNAPSHOT.jar &> /usr/local/app/hello.log &
status=$?
if [ $status -ne 0 ]; then
echo "项目启动失败,状态码:$status"
exit $status
else
echo "项目启动完成"
fi
:wq保存退出再输入
chmod +x bootStart.sh
./bootStart.sh
重新运行脚本 运行成功 一切正常