jar包批量启动脚本

本文介绍如何在Linux环境下编写一个脚本,实现批量启动多个Java jar应用程序。内容涵盖脚本语法、环境变量设置及jar包的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
servers=(bdc1 bdc2 bdc3 bdc4 bdc5 bdc6 bdc7 bdc8)
server_name=(不动产1 不动产2 不动产3 不动产4 不动产5 不动产6 不动产7 不动产8)
function start() {
  server=$1
  p=$(jps -l | grep -E "[0-9]+ [./a-zA-Z]+${server}.jar" | tr -d '/a-zA-Z. ')
  if [ "${p}" != '' ]; then
    echo "关闭正在运行服务 $server"
    kill -9 $p
  fi
  echo "启动服务 $server"
  nohup java -jar -Xmx3072m -Xms2048m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Duser.timezone=GMT+08 -Duser.timezone=GMT+08 "/home/bdc/DockerFiles/${server}/${server}.jar" >>"./log/${server}.log" 2>&1 &
}
function run() {
  echo $'\n\033[32m欢迎使用一键启动/重启不动产服务脚本,如需退出脚本请使用"Ctrl + C"'
  echo $'--------选择并启动/重启服务-------- \033[34mby hel'
  echo $'\t\033[31m0\033[0m 启动/重启所有服务'
  for ((i = 1; i < ${#servers[*]} + 1; i++)); do
    echo -e "\t\033[31m${i}\033[0m ${servers[$i - 1]} ${server_name[$i - 1]}"
  done
  echo -n -e "请输入\033[31m序号\033[0m(多个使用英文逗号','分隔):"
  read num
  if [ "$num" = 0 ]; then
    for ((i = 1; i < ${#servers[*]} + 1; i++)); do
      start "${servers[$i - 1]}"
    done
  else
    numArr=$(echo $num | sed 's/,/\n/g')
    for n in $numArr; do
      if [ "$n" -gt ${#servers[*]} ]; then
        echo "!!!没有这个选项 > $n"
        run
      fi
      start "${servers[$n - 1]}"
    done
  fi
}
run

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值