首页 > 系统相关 >Linux jar包维护脚本

Linux jar包维护脚本

时间:2023-10-10 22:00:13浏览次数:40  
标签:脚本 IP NAME ## PID jar Linux JAR LOCAL

1、

2、

#!/bin/sh
## java 此处是指定jdk启动
export JAVA_HOME=/opt/jdk-11
export JRE_HOME=$JAVA_HOME/jre
 
##此处是打包的jar包名称,不带.jar后缀
APP_NAME=spring-boot-mgt-2.3.0
##项目路径
APP_DIR=/data/xxxx_temp/xx_mgt
##临时目录,如果不指定该目录(使用默认路径)可能会导致启动报错
TMP_DIR=$APP_DIR/temp
##完整jar包名称
JAR_NAME=$APP_NAME\.jar
##PID  代表是PID文件
PID=$APP_NAME\.pid
## 此处是本地ip,此处使用python获取本地ip,服务器需确保安装python环境,把括号内的命令复制到服务器执行一下看下获取到的ip是否正确
LOCAL_IP=$(python2 -c "import socket;print([(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])")
 
## 进入执行目录 
cd $APP_DIR
## 创建临时目录
mkdir -p $TMP_DIR
 
#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
    exit 1
}
 
#检查程序是否在运行
is_exist(){
  pid=$(netstat -nlp | grep :8088 | awk '{print $7}' | awk -F"/" '{ print $1 }')
  #如果不存在返回1,存在返回0    
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> ${JAR_NAME} is already running PID=${pid} , LOCAL_IP is ${LOCAL_IP} ! <<<"
  else
    nohup java -Xms256m -Xmx512m -jar  -Djava.io.tmpdir=$TMP_DIR  -DDUBBO_IP_TO_BIND=$LOCAL_IP $JAR_NAME --spring.profiles.active=test  >/dev/null 2>&1 & 
    echo $! > $PID
    echo ">>> start $JAR_NAME successed PID=$! , LOCAL_IP is ${LOCAL_IP} !<<<"
   fi
  }
 
#停止方法
stop(){
  #is_exist
 pidf=$(netstat -nlp | grep :8088 | awk '{print $7}' | awk -F"/" '{ print $1 }')
  echo "$pidf" 
  echo ">>> api PID = $pidf begin kill $pidf <<<"
  kill $pidf
  rm -rf $PID
  sleep 3
  # is_exist
  if [ $? -eq "0" ]; then
    echo ">>> api 2 PID = $pidf begin kill -9 $pidf  <<<"
    kill -9  $pidf
    sleep 3
    echo ">>> $JAR_NAME process stopped <<<" 
  else
   echo ">>> ${JAR_NAME} is not running <<<"
  fi 


#port=7001 # 将7001替换成你想要查找和杀死的端口号


#kill -9 $(netstat -nlp | grep :7001 | awk '{print $7}' | awk -F"/" '{ print $1 }')


}
 
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo ">>> ${JAR_NAME} is running PID is ${pid} , LOCAL_IP is ${LOCAL_IP} !<<<"
  else
    echo ">>> ${JAR_NAME} is not running <<<"
  fi
}
 
#重启
restart(){
  stop
  start
}
 
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")
    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac
exit 0

标签:脚本,IP,NAME,##,PID,jar,Linux,JAR,LOCAL
From: https://www.cnblogs.com/kikyoqiang/p/17755855.html

相关文章

  • 使用newman来执行posman脚本
    一.什么是Newman简单来说使用Newman,可以让我们的Postman的脚本通过非GUI(命令行)的方式运行二、安装首先需要安装NodeJsNodeJs安装完成后,使用npminstall-gnewman安装newman三、NewMan命令使用newmanrun--help可以查看帮助命令-e指定环境变量-g指定全局......
  • Linux命令行基本操作
    本例要求熟悉新装LINUX系统中命令行界面的获取方法,并通过命令行完成下列任务:pwd、cd、ls命令练习路径练习路径切换练习cat命令练习less命令练习hostname命令练习显示CPU与内存查看IP地址创建数据练习查看部分文件内容过滤文件内容vim文本编辑器关机与重启简单命令......
  • python查找替换危险字符脚本
    为了沃滴好大儿的大创写了这么个脚本代码如下:1importio2importbase6434defreplace_dangerous_sequences(image_path):5try:6#读取图像文件的内容7withopen(image_path,'rb')asimage_file:8image_data=image_......
  • MRTG监控linux服务器性能(网络流量,CPU,磁盘等)
     yum-yinstallmrtg* ......
  • html引用远程js脚本
    html引用远程js脚本varscript=document.createElement('script');script.src='https://example.com/remote-script.js';document.head.appendChild(script);script.addEventListener('load',function(){//远程脚本加载完成后执行的代码conso......
  • .net core linux下使用SkiaSharp实现图形验证码
    linux下使用c#自带的获取验证码需要安装图形处理插件比较麻烦 安装nugit依赖SkiaSharp.NativeAssets.Linux.NoDependencies  添加helper类SkiaSharpValidateCodeHelper.csusingSkiaSharp;usingSystem.Text;namespaceVerifyCode.Helpers{publicclassSkia......
  • Linux学习记录(六):系统安装与配置
    一、系统安装安装Linux系统(Ubuntu16.04/18.04LTS)LTSmeansLong-termsupport虚拟机安装:VMWare+ISO系统镜像文件WSL(WindowsSubsystemforLinux)二、系统配置可选项:更换软件源安装依赖项安装gcc和cmakeforcpp安装依赖项forCV三、SSH使用场景:本地VSCode......
  • springboot部署jar项目
    查询进程: ps-ef|grepjava杀死项目进程: kill-9进程号部署命令liunx:自己创建日志放入nohup.out文件中nohupjava-jarvisPlat-service-2.3.0.230522_CLOUD_RELEASE.jar&  重定向日志文件到service.log文件中nohupjava-jarservice.jar>./lo......
  • linux 多线程写
      pread 和 pwrite 函数是linux下C语言编程中非常好用的IO操作函数。它们属于系统调用,在2.1.60之后版本的linux下都可以使用,尤其适合用于多线程的应用中,它们允许多个线程操作同一个文件描述符,不会互相影响彼此的文件偏移(offset)。 pread和pwrite函数所需......
  • 私服maven仓库,无法获取到快照版本的jar包 问题处理
    场景1.确认目标包存在与私服仓库中。2.切maven的settings.xml设置无问题,仓库地址,以及快照属性,都是打开的。 解决方式: 在项目pom文件中,重新指定仓库地址以及启用snapshots属性。 <repositories><repository><!--ID必填--><id>......