linux中一次启动多个jar的脚本

实现linux系统发布jar包项目脚本启动且日志按日期自动切割 1 linux 脚本实现发布jar #!/bin/bash 定义变量 要运行的jar包路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到 JAR_NAME=项目名称-0.0.1-SNAPSHOT.jar 日志路径,加不加引号都行。 注意:等号两边 不能 有空格,否则会提示command找不到 LOG_PATH=service.log 如果输入格式不对,给出提示! ... 阅读详情

我们在通过jar启动项目时,有时候会比较多,启动会比较麻烦,需要编写shell脚本启动,vim start.sh

#! /bin/sh
# 端口号
PORTS=(9000 9205)
# 模块
MODULES=(gateway customer-api)
# 模块名称
MODULE_NAMES=(网关 用户中心api)
# jar包数组
JARS=(ruizhi-gateway-1.0-SNAPSHOT.jar customer-api-1.0-SNAPSHOT.jar)
# jar包路径
JAR_PATH='/usr/local/jar'
# 日志路径
LOG_PATH='/usr/local/jar/output'
start() {
  local MODULE=
  local MODULE_NAME=
  local JAR_NAME=
  local command="$1"
  local commandOk=0
  local count=0
  local okCount=0
  local port=0
  for((i=0;i<${#MODULES[@]};i++))
  do
    MODULE=${MODULES[$i]}
    MODULE_NAME=${MODULE_NAMES[$i]}
    JAR_NAME=${JARS[$i]}
    PORT=${PORTS[$i]}
    if [ "$command" == "all" ] || [ "$command" == "$MODULE" ];then
      commandOk=1
      count=0
      PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
      if [ -n "$PID" ];then
        echo "$MODULE---$MODULE_NAME:已经运行,PID=$PID"
      else
        exec nohup java -Xms256m -Xmx512m -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/$MODULE.log 2>&1 &
        PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
        while [ -z "$PID" ]
        do
          if (($count == 30));then
            echo "$MODULE---$MODULE_NAME:$(expr $count \* 10)秒内未启动,请检查!"
            break
          fi
          count=$(($count+1))
          echo "$MODULE_NAME启动中.................."
          sleep 10s
          PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
        done
        okCount=$(($okCount+1))
        echo "$MODULE---$MODULE_NAME:已经启动成功,PID=$PID"
      fi
    fi
  done
  if(($commandOk == 0));then
    echo "第二个参数输入错误"
  else
    echo "............本次共启动:$okCount个服务..........."
  fi
}
 
stop() {
  local MODULE=
  local MODULE_NAME=
  local JAR_NAME=
  local command="$1"
  local commandOk=0
  local okCount=0
  for((i=0;i<${#MODULES[@]};i++))
  do
    MODULE=${MODULES[$i]}
    MODULE_NAME=${MODULE_NAMES[$i]}
    JAR_NAME=${JARS[$i]}
    if [ "$command" = "all" ] || [ "$command" = "$MODULE" ];then
      commandOk=1
      PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
      if [ -n "$PID" ];then
        echo "$MODULE---$MODULE_NAME:准备结束,PID=$PID"
        kill -9 $PID
        PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
        while [ -n "$PID" ]
        do
          sleep 3s
          PID=`ps -ef |grep $(echo $JAR_NAME | awk -F/ '{print $NF}') | grep -v grep | awk '{print $2}'`
        done
        echo "$MODULE---$MODULE_NAME:成功结束"
        okCount=$(($okCount+1))
      else
        echo "$MODULE---$MODULE_NAME:未运行"
      fi
    fi
  done
  if (($commandOk == 0));then
    echo "第二个参数输入错误"
  else
    echo "............本次共停止:$okCount个服务............"
  fi
}
 
 
case "$1" in
  start)
    start "$2"
  ;;
  stop)
    stop "$2"
  ;;
  restart)
    stop "$2"
    sleep 3s
    start "$2"
  ;;
  *)
    echo "第一个参数请输入:start|stop|restart"
    exit 1
  ;;
esac

编写成功后,修改文件的权限chmod +7 start.sh
操作的命令:

## 启动所有
./start.sh start all  
## 停止所有
./start.sh stop all  
## 重启所有
./start.sh restart all  
## 启动某一个 这里的gateway与sh中的module中定义的一样即可
./start.sh restart gateway

错误:
1.如果执行脚本时提示:-bash: ./start.sh: /bin/sh^M: bad interpreter: No such file or directory
这个是编码格式的问题,进入文件后,输入:set ff 发现提示的为doc,这是你需要通过:set ff=unix 修改文件的格式。

Linux一键启动多个jar 这是Linux环境下一键启动/停止多个Java程序jar包的文件,执行命令为./java.sh start 立即下载

相关推荐

linux 一键启动 jar包 批处理脚本

linux 一键启动 jar包 批处理脚本,适用于java 项目,spring boot 一键启动,停止,重启 等,代码简洁,可直接使用.

linux 执行shell报bad interpreter:No such file or directory错误

一、问题描述       1)在windows上编译好项目,拷贝到linux并启动命令,报如下错误: 二、原因      1).sh脚本在windows系统下编写的,所以可能有不可见字符,从上图错误提示来看,很有可能脚本文件是DOS格式的,即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A。 三、解决方法     1)通过vim filename 或者vi f...

xuforeverlove的博客 5万+

linux批量启动程序jar包

在linux环境下,批量启动程序jar包

linux——jar包一键启动脚本

linuxjar包一键启动脚本

hayhead的博客 1205

Amesim与Simulink联合仿真:S-Function接口配置与实战避坑指南

本文详细介绍了Amesim与Simulink联合仿真中S-Function接口的配置方法与实战避坑指南。从环境搭建、编译器配置到S-Function接口实战,逐步解析关键步骤与常见问题解决方案,帮助工程师高效实现多领域系统仿真,特别适合汽车、航空航天等复杂系统建模场景。

weixin_29173777的博客 344

华为昇腾Atlas200DK. CANN模型推理——目标检测结果不对(无检测结果)的问题解决

目录前言问题描述问题排查1.后处理模块问题排查2.预处理模块问题排查3.模型问题排查4.算法bug问题排查5.AI板卡问题排查6.模型精度问题排查6.模型推理问题解决:模型输入数据与预处理不同后记 前言 上周我在华为昇腾Atlas200DK中部署nanodet和yolov5时,出现了目标检测结果不对(没有检测到任何物体),困扰了整整三天,最后找到原因并圆满解决,在这里记录一下debug过程。 以上测试均在python中完成。 问题描述 第一天上午,我首先将nanodet由pytorch的.pth模型转换为.

qq_41035283的博客 5604

linux环境中一次启动多个jar包,并且设置脚本开机自启

我们在通过jar启动项目时,有时候会比较多,启动会比较麻烦,需要编写shell脚本启动,将启动脚本存放在需要启动的jar包路径下。(文档存放在 /home/process_parent )PORTS 端口号,多个用空格隔开MODULES 模块,多个用空格隔开MODULE_NAMES 模块名称,多个用空格隔开。

liao3399084的博客 3008

基于YOLO26深度学习框架的文档表格识别系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的文档表格识别系统实现方法。系统采用YOLO26网络架构,通过数据预处理、模型训练、检测推理和表格分析四个模块实现高效表格识别。研究详细阐述了数据归一化、增强等技术处理,以及采用迁移学习策略优化模型训练过程。实验表明,该系统能有效识别多种表格结构并生成结构化数据,为文档自动化处理提供了可靠解决方案。

一键难忘的博客 972

linux中使用脚本一次性启动多个jar服务,主要解决SpirngCloud多个服务的部署问题

原文:https://blog.youkuaiyun.com/github_38924695/article/details/105165999?fps=1&locationNum=2 1、在通过jar启动项目时,有时候会比较多,启动会比较麻烦,需要编写shell脚本启动 #! /bin/sh # 端口号 PORTS=(9000 9205) # 模块 MODULES=(gateway custo...

qq_29658333的博客 1187

Cadence OrCAD Capture原理图中为功能模块分配ROOM的方法

本文详解介绍原理图设计阶段为原理图模块分配ROOM的方法。

fydar的博客 1345

手把手教你学 GPU SoC 芯片(9.3)--GPU SOC 功耗和热管理的动态电压和频率调整(DVFS)

通过动态电压和频率调整(DVFS),可以有效地管理GPU SoC的功耗和热管理。合理的DVFS策略不仅可以节省功耗,提高能效,还可以延长设备的使用寿命。

MHD0815的博客 1498

linux 微服务脚本(一次启动多个jar)

一、编写脚本 #!/bin/sh export GATEWAY=ruoyi-gateway-2.2.0.jar export AUTH=ruoyi-auth-2.2.0.jar export MONITOR=ruoyi-visual-monitor-2.2.0 export GEN=ruoyi-modules-gen-2.2.0.jar export SYSTEM=ruoyi-modules-system-2.2.0.jar export JOB=ruoyi-modules-job-2.2.0.jar ex

船长灬普朗克的博客 1869

openclaw 保姆级部署与核心玩法解析:国产DeepSeek模型 + 飞书

OpenClaw是一款功能强大的开源AI个人助理,支持全平台私有化部署,数据完全本地掌控。它不仅可通过聊天窗口直接操控电脑(安装软件、创建项目),还支持接入飞书等主流通讯工具,化身24小时在线的智能助理。本文提供了从零开始的详细部署教程,涵盖基础安装、模型配置(如GLM-4、DeepSeek)到飞书集成的完整实战指南,助你将这款“核动力”AI助手快速融入日常工作流。

甘蓝的专栏 2998

linux一次启动多个jar包

1.编辑脚步,复制代码到文本,改名为start_jar.sh。第三个all的参数也可以是单独一个jar包名。第三个all的参数也可以是单独一个jar包名。

wangchuang8865的博客 503

k8s上分离集群seatunnel部署(生产推荐)

k8s上分离集群seatunnel部署(生产推荐)

寂夜了无痕的博客 886

ChatGPT充值,银行卡被拒绝,图文教程

ChatGPT充值,银行卡被拒绝

weixin_46713695的博客 2万+

linux java 多个jar包_Linux shell脚本,按顺序批量启动多个jar包,批量启动spring cloud的jar包...

Linux shell脚本,按顺序批量启动多个jar包,批量启动spring cloud的jar包一. 手动一个一个启动的方式:nohup java -jar eurekaserver.jar > ../logs/eurekaserver.log 2>&1 &nohup java-jar configserver.jar > ../logs/configserve...

weixin_39864601的博客 1042

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

一键启动多个jar文件

# 配置 APPS NAMES 即可 #!/bin/bash#####################################################Environment Setting####################################################### #程序代码数组 APPS=(MIR SM MGW IMR TRANSCODIN

u014378883的博客 2041

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Linux一键启动多个jar和Shell脚本的编写

背景 公司项目是spring cloud eureka微服务系列的架构,在内网环境linux上需要一键启动/停止多个jar包。考虑到.sh文件的执行,仅供参考,有其他方案的同学请留言告知,在此先感谢了! 代码 1.一键启动/停止多个jar 启动:./java.sh start 停止:./java.sh stop 重启:./java....

艾斯-李的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Linux脚本启动jar包

注意:以下脚本笔者是在Windows上编辑的,因此默认格式是dos。如果在Linux上使用,请使用vi命令编该文件,改为Unix格式。笔者使用的SpringBoot + jsp 因此使用的是war包,如果你使用的是jar包,在文中用到war的地方改成jar就行。 一:脚本auto_deploy.sh 使用该脚本只需要修改JAR_NAME(改成自己的)、LOG_PATH(改成自己的)、脚本格式(...

pocher的博客 2万+

linux系统之jar启动脚本

来查找运行指定 JAR 文件的 Java 进程。这种方法避免了使用 PID 文件,确保脚本能够准确定位到对应的进程。执行 vi run_blog 按i 进入编辑,复制以下代码,并根据当前环境修改三个参数。将应用在后台运行,并将输出重定向到指定的日志文件。启动后,脚本会等待一秒钟以确保进程已启动,并再次检查 PID。通过检查 PID 是否存在,判断应用是否正在运行,并输出相应的信息。应用的输出被重定向到指定的日志文件。如果希望应用在系统启动时自动运行,可以将脚本添加到。脚本首先查找应用的 PID,然后发送。

qyhua的专栏 2245

Linux环境下以命令和脚本方式启动jar包

Linux环境下以命令和脚本方式启动jar包 一、以命令方式启动jar包 1、方式一 java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出。 2、方式二 // 那如何让窗口不锁定? java -jar XXX.jar & // &代表在后台运行 特点:当前ssh窗口不被锁定,...

CoderYin的博客 7829

Linux 一个sh脚本启动多个jar包,并且注册为系统服务,还可以自启动

Linux 一个sh脚本同时启动多个jar包,并且注册成为系统服务和自启动

白也白 1075

jar 启动脚本

Linux/macOS和Windows系统下启动、停止及重启Java应用的脚本方案。在Linux/macOS中,使用Shell脚本实现JVM参数配置、进程检查、强制终止和后台重启功能,并将输出重定向至日志文件;Windows则通过批处理脚本实现类似功能,使用tasklist和taskkill命令管理进程。两个系统均支持自动检测并杀死正在运行的进程后重新启动应用,脚本包含JVM内存设置、应用路径配置等可调参数,方便根据实际需求进行修改。文末还提供了进程ID文件管理、日志输出等实用功能的实现说明。

sv 1247

[ Linux ] Shell脚本启动jar包

文章目录案例1:简单的启动方式案例二:带配置文件时 案例1:简单的启动方式 注意:jar 包与shell脚本文件必须在同一目录下 #!/bin/bash APP_NAME=/boot/soc-statistic-service-0.0.1-SNAPSHOT.jar usage() { echo "Usage: sh demo.sh [start|stop|restart|status]" exit 1 } is_exist() { pid=`ps -ef | grep $APP_NAME | gr

Java 3319
上一篇: centos7中安装mysql5.7
下一篇: linux中搭建docker私有仓库二:Harbor
蓝色格子
博客等级 码龄9年 129粉丝 174原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值