[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]
- 电脑硬件
- 2025-08-06 07:15:02

前言:
个人博客: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 2>&1 & # 打印字符串 echo "启动成功" } # 停止 stop(){ # 查询到项目的pid tpid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk '{print $2}') # 判断是否为空 if [ -z "$tpid" ] then # 如果为空 则打印这句话 echo Application is already stpped else # 如果不为空则执行 echo kill $tpid # 关闭进程 kill -9 $tpid echo "程序已关闭" fi } # 查看状态 status(){ # 获取pid的 pid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep) if [ -z "$pid" ] then echo "程序不存在" else echo $pid fi } # 查看日志信息 log(){ tail -f $HOME/springBootThree-1.0.log } case $1 in start) start ;; stop) stop ;; status) status ;; log) log ;; restart) $0 stop sleep 5 $0 start ;; *) echo "只能是{start|stop|log|restart}" ;; esac exit 0 0、.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 2>&1 & # 打印字符串 echo "启动成功" } 2、停止注意!!(小坑): .sh脚本语法是强语法结构,所以格式很重要,使用if判断时,中间的条件左右必须有空格
# 停止 stop(){ # 查询到项目的pid tpid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep | awk '{print $2}') # 判断是否为空 if [ -z "$tpid" ] then # 如果为空 则打印这句话 echo Application is already stpped else # 如果不为空则执行 echo kill $tpid # 关闭进程 kill -9 $tpid echo "程序已关闭" fi } 3、查看状态 # 查看状态 status(){ # 获取pid的 pid=$(ps -ef | grep springBootThree-1.0.jar | grep -v grep) if [ -z "$pid" ] then echo "程序不存在" else echo $pid fi } 4、查看日志 log(){ tail -f $HOME/springBootThree-1.0.log } 5、case语法最后使用case语法 将其联系起来即可
# 判断外部输入的是什么关键词 (start|stop|status|log|restart) case $1 in start) start ;; stop) stop ;; status) status ;; log) log ;; restart) $0 stop sleep 5 $0 start ;; *) echo "只能是{start|stop|log|restart}" ;; esac exit 0 6、 最后保存当前.sh文件,然后使用 chmod 777 文件名 变为可执行文件。
其实使用 chmod +x 文件名 给一个执行权限就可以了,但是我闲麻烦,所以就直接设置最大权限啦。
三、执行.sh脚本查看状态: ./Three.sh status
启动项目:./Three.sh start
查看日志: ./Three.sh log
关闭项目: ./Three.sh stop
重启项目: ./Three.sh restart
这就是.sh脚本自动部署脚本的基本使用方式了,快去掌握吧。
[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“[含完整代码]Linux使用.sh脚本自动部署(启动|停止|状态|日志)项目[超详细]”