一个启动jar包的shell脚本,简单讲解~

从前使用sh文件都是复制粘贴别人的,突然今天来了兴趣想看看道理是什么内容,读完后才知道原来如此容易读懂~妈妈以后再也不懂担心我不会写简单shell脚本了。

shell知识

  1. 【’ '】 单引号中的内容,只显示本身的含义
  2. 【" "】 双引号中变量$可以被识别,但命令只能作为字符显示
  3. 【$变量名】 后面引用的时系统变量
  4. 【代码最后 &】 让程序后台运行
  5. 【if [ ]; then ‘内容’ fi 】 fi是if的结尾
  6. 【nohup】 不挂断地运行命令
  7. 【echo】 打印文本/打印日志

.Sh文件内容

Tag1="test1"
# 检查进程状态
pid=$(ps -ef | grep -v 'grep' | egrep $Tag1| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then      
    kill -9 "$pid"
else 
   echo "boot is stopped" 
fi

# 启动项目

nohup java  -jar -Xms128M -Xmx256M /home/test1.jar > /home/a.log &

Tag2="test2"
# 检查进程状态
pid=$(ps -ef | grep -v 'grep' | egrep $Tag2| awk '{printf $2 " "}')
if [ "$pid" != "" ]; then      
    kill -9 "$pid"
else 
   echo "boot is stopped" 
fi
# 启动项目

nohup java  -jar -Xms128M -Xmx256M /home/test2.jar  >  /home/b.log &

首先我们先来了解 上面这个.sh文件都做了什么

  • 给Tag1变量赋值

  • pid = $(ps -ef | grep -v ‘grep’ | egrep $Tag1| awk ‘{printf $2 " "}’) 查询与tag1变量相匹配的进程pid 并获取 用空格分开

  • if判断pid是否为空

    • 如果不为空 kill程序
    • 如果为空 打印字符传 “boot is stopped”
  • 最后启动程序

为什么要先kill掉程序呢?当然是因为不kill掉 会出现端口号被占用的情况~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值