Bash命令启动、关闭、重启Jar包

1、创建文件夹,将项目jar文件丢入服务器中

mkdir -m 755 test

-m:类似chmod 给文件夹权限

2、一般开发环境和部署环境配置不一致,在有外置配置及内置配置时,JAR优先使用外置配置文件,即将外置配置文件修改好之后,与jar文件同一目录即可

3、编写bash文件

#!/bin/bash

# 需要配置环境变量后才能直接使用java这些变量(Ubuntu使用apt安装在如下位置,其它位置进行相应替换)
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

#这里可替换为你自己的执行程序,其他代码无需更改
APP_HOME=/temp/zhtj
APP_NAME=tianheng-web-app-2.0.0.jar

#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh deploy.sh [start|stop|restart|status]"
    exit 1
}

#检查程序是否在运行
is_exist(){
  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}

#启动方法
start(){
  is_exist
  if [ $? -eq 0 ]; then
    echo "$APP_NAME is already running. pid=${pid}"
  else
    cd $APP_HOME
    nohup java -jar $APP_NAME > zhtj.log 2>&1 &
  fi
}

#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "$APP_NAME is not running"
  fi  
}

#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "$APP_NAME is running. Pid is ${pid}"
  else
    echo "$APP_NAME is NOT running."
  fi
}

#重启
restart(){
  stop
  sleep 5
  start
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

注意1:从windows拷贝到linux系统下,sh文件需要给权限,命令如下

chmod 755 zhtj.sh

注意2:windows编写的sh文件直接在linux执行会报错:-bash 错误的解释器:没有那个文件或目录

需要在linux下执行以下命令:zhtj.sh为文件

sed -i 's/\r$//' zhtj.sh

注意3:如果APP_NAME为实际路径,如下:

APP_NAME=/temp/zhtj/tianheng-web-app-2.0.0.jar

 在执行 ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' 命令时找不到PID

修改如下即可识别到PID

APP_NAME=tianheng-web-app-2.0.0.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值