做网站片头的软件,网络软文案例,成都旅游公司排名前十,网站制作费计入什么科目前言#xff1a;
个人博客#xff1a;www.wdcdbd.com 我们在linux部署.jar项目时#xff0c;都需要通过java -jar的形式来部署#xff0c;每次都要手动停止#xff0c;部署#xff0c;这样用起来会很麻烦。所以#xff0c;这篇文章就是自己通过.sh脚本一键启动#xf…前言
个人博客www.wdcdbd.com 我们在linux部署.jar项目时都需要通过java -jar的形式来部署每次都要手动停止部署这样用起来会很麻烦。所以这篇文章就是自己通过.sh脚本一键启动停止重启查看状态查看日志。这样会方便一些。
一、编写.sh脚本前准备工作 将你的java项目放到你linux习惯的位置创建一个.sh文件名字自定义。 我就给他命名为Three.sh了具体你可以自定义
注意在编写.sh脚本文件时不可以在windows环境下写好之后再放到linux环境中因为两套系统使用的格式是不一样的。Windows下换行符号是“\r\n”而linux下是“\n”没有”\r”当shell脚本是在Windows下编写的时候默认所有的换行符都是“\r\n”linux下是没办法正确识别这个文件的。如果你已经这样做了那么就要在linux下执行以下命令来去除掉/r sed -i s/\r$// sh文件名.sh 二、编写.sh脚本文件 这是完整脚本代码。为了让大家更直观的看到脚本文件中的所有命令下边我就将启动停止重启查看状态查看日志这几个命令拆开来讲解。如果已经对其有一些了解的话可以直接使用这个完整的脚本代码进行修改即可。
#!/bin/bash# jar包路径-你放置jar包的路径可自定义
HOME/home/dblog# 启动
start(){
cd $HOME
# 将java程序后台启动并将启动日志指向springBootThree-1.0.log中
nohup java -jar springBootThree-1.0.jar springBootThree-1.0.log 21
# 打印字符串
echo 启动成功
}# 停止
stop(){# 查询到项目的pidtpid$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk {print $2})# 判断是否为空
if [ -z $tpid ]then
# 如果为空 则打印这句话echo Application is already stppedelse
# 如果不为空则执行echo kill $tpid
# 关闭进程kill -9 $tpidecho 程序已关闭
fi
}# 查看状态
status(){# 获取pid的pid$(ps -ef | grep springBootThree-1.0.jar | grep -v grep)if [ -z $pid ]
thenecho 程序不存在
elseecho $pid
fi
}# 查看日志信息
log(){
tail -f $HOME/springBootThree-1.0.log
}case $1 instart)start
;;
stop)stop
;;
status)status
;;
log)log
;;
restart)$0 stopsleep 5$0 start
;;
*)echo 只能是{start|stop|log|restart}
;;
esac
exit 00、.sh脚本格式 第一行必须是这个没有什么为什么格式就是这样
1、启动
#!/bin/bash# jar包路径-你放置jar包的路径可自定义
HOME/home/dblog# 启动
start(){
cd $HOME
# 将java程序后台启动并将启动日志指向springBootThree-1.0.log中
nohup java -jar springBootThree-1.0.jar springBootThree-1.0.log 21
# 打印字符串
echo 启动成功
}2、停止
注意小坑 .sh脚本语法是强语法结构所以格式很重要使用if判断时中间的条件左右必须有空格
# 停止
stop(){# 查询到项目的pidtpid$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk {print $2})# 判断是否为空
if [ -z $tpid ]then
# 如果为空 则打印这句话echo Application is already stppedelse
# 如果不为空则执行echo kill $tpid
# 关闭进程kill -9 $tpidecho 程序已关闭
fi
}3、查看状态
# 查看状态
status(){# 获取pid的pid$(ps -ef | grep springBootThree-1.0.jar | grep -v grep)if [ -z $pid ]
thenecho 程序不存在
elseecho $pid
fi
}4、查看日志
log(){
tail -f $HOME/springBootThree-1.0.log
} 5、case语法
最后使用case语法 将其联系起来即可
# 判断外部输入的是什么关键词 (start|stop|status|log|restart)
case $1 instart)start
;;
stop)stop
;;
status)status
;;
log)log
;;
restart)$0 stopsleep 5$0 start
;;
*)echo 只能是{start|stop|log|restart}
;;
esac
exit 06、 最后
保存当前.sh文件然后使用 chmod 777 文件名 变为可执行文件。
其实使用 chmod x 文件名 给一个执行权限就可以了但是我闲麻烦所以就直接设置最大权限啦。 三、执行.sh脚本 查看状态 ./Three.sh status 启动项目./Three.sh start 查看日志 ./Three.sh log 关闭项目 ./Three.sh stop 重启项目 ./Three.sh restart 这就是.sh脚本自动部署脚本的基本使用方式了快去掌握吧。