首页 > 系统相关 >linux jar 重启脚本

linux jar 重启脚本

时间:2025-01-03 16:35:33浏览次数:1  
标签:service 重启 NC jar echo GREEN linux services

#!/bin/bash

# 设置颜色变量
GREEN='\033[32m'
RED='\033[31m'
NC='\033[0m' # No Color

# 定义服务数组
services=(
    "system"
    "xxljob"
    "inte"
    "monitor"
    "gateway"
)

# 定义服务对应的JAR文件名
declare -A service_jars=(
    ["system"]="jeecg-system-cloud.jar"
    ["xxljob"]="jeecg-cloud-xxljob.jar"
    ["inte"]="jeecg-cloud-inte.jar"
    ["monitor"]="jeecg-cloud-monitor.jar"
    ["gateway"]="jeecg-cloud-gateway.jar"
)

# 显示菜单
echo -e "${GREEN}请选择需要重启的服务:${NC}"
for i in "${!services[@]}"; do
    echo -e "${GREEN}$((i+1)). ${services[i]}${NC}"
done
echo -e "${GREEN}0. 全部重启${NC}"

read -p "请输入选项 (0-${#services[@]}):" choice

# 检查输入是否有效
if [[ ! $choice =~ ^[0-9]+$ ]] || (( choice < 0 || choice > ${#services[@]} )); then
    echo -e "${RED}无效的选项,请重新运行脚本并选择有效的选项。${NC}"
    exit 1
fi

# 定义重启函数
restart_service() {
    local service=$1
    local jar_file=${service_jars[$service]}
    local tem_path="/mnt/api/tem/${jar_file}"
    local dest_path="/mnt/api/${jar_file}"

    # 停止服务
    echo -e "${GREEN}停止 ${service}...${NC}"
    pids=$(ps aux | grep "[j]eecg" | grep "$jar_file" | awk '{print $2}')
    if [ -n "$pids" ]; then
        for pid in $pids; do
            kill -9 $pid
        done
        echo -e "${GREEN}${service} 的所有进程已终止。${NC}"
    else
        echo -e "${RED}${service} 没有正在运行的进程。${NC}"
    fi

    # 等待进程完全终止
    sleep 2

    # 移动备份文件
    echo -e "${GREEN}移动 ${service} 的 JAR 文件到目标目录...${NC}"
    mv -b "$tem_path" "$dest_path"
    if [ $? -eq 0 ]; then
        echo -e "${GREEN}JAR 文件移动成功。${NC}"
    else
        echo -e "${RED}JAR 文件移动失败。${NC}"
        exit 1
    fi

    # 启动服务
    echo -e "${GREEN}启动 ${service}...${NC}"
    nohup java -Xms512m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -jar "$dest_path" --spring.profiles.active=prod > "/mnt/api/logs/${service}.log" &
    if [ $? -eq 0 ]; then
        echo -e "${GREEN}${service} 已成功启动。${NC}"
    else
        echo -e "${RED}${service} 启动失败。${NC}"
        exit 1
    fi
}

# 根据用户选择执行相应操作
if [ "$choice" -eq 0 ]; then
    echo -e "${GREEN}全部重启...${NC}"
    for service in "${services[@]}"; do
        restart_service "$service"
    done
else
    selected_service=${services[$((choice-1))]}
    echo -e "${GREEN}重启 ${selected_service}...${NC}"
    restart_service "$selected_service"
fi

echo -e "${GREEN}重启脚本执行完成。${NC}"

标签:service,重启,NC,jar,echo,GREEN,linux,services
From: https://www.cnblogs.com/qwer78/p/18650383

相关文章

  • RockyLinux 9.5 MySQL5.7_二进制方式+jdk1.8+tomcat9+jpress
    安装MySQL5.7#cd/opt#yuminstall-ywget#wgethttps://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz#tar-xvfmysql-5.7.10-linux-glibc2.5-x86_64.tar.gz-bash:tar:commandnotfound#yuminstall-ytar#tar-xvfmysql-5.7.10......
  • Petalinux ARM设置自启动、自动加载驱动、自动挂载SD卡
    一、在工程路径下新建apppetalinux-create-tapps--templateinstall-nmyapp-init--enablepetalinux会在metausr目录下新建一个目录,结构如下project-spec/meta-user/recipes-apps/myapp-init/├──files│  └──myapp-init├──myapp-init.bb└──README......
  • 【linux合集】新开终端发现所有命令都无法执行。。。
    场景描述:在登录到机器的时候发现出现大量的commandnotfound的情况,几乎无法执行除了exportcd以外的所有命令,几乎无法执行所有命令的情况很无奈,然后发现可以执行history查看历史命令,随后通过history了解在此之前有操作过环境变量,这时候就在考虑是不是环境变量的情况导致当前的情......
  • “illegal instruction”:一个Linux编译选项引发的“血案”——march配置
    1.项目场景在项目中,我们将在研发主机的Ubuntu18.04系统上编译的一个可执行程序拷贝到一个全新主机(Ubuntu18.04)上运行时,出现了“illegalinstruction”错误。如下图所示:2.问题描述当时最开始以为是代码问题,尝试了很多修改,没任何用。后面推断是动态库的问题,将我们依赖......
  • 【云原生 | KVM虚拟机01】KVM虚拟机Linux系统部署,一文读懂一次搞定
    ......
  • linux中执行命令
    1.1命令格式命令格式:主命令选项参数(操作对象)命令分为两类:内置命令(builtin):由shell程序自带的命令外部命令:有独立的可执行程序文件,文件名即命令名选项:指定命令的运行特性,指明要运行命令中的哪一个功能代码。短选项:例如:-l,-d,如果同一命令同时使用多......
  • linux文件类型和根目录结构
    1.1Linux文件类型1.2Linux系统的目录结构 1.2.1FHSfilesystemhierarchystandard文件系统层级标准,定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。Linux目录结构的特点使用树形目录结构来组织和管理文件......
  • 学无止境-Linux-申请设备号注意事项
    备注:学习记录所用,若有高手不吝赐教,万分感谢!1、申请设备号过程现在基本都是如下:#defineN_DEVS_MINOR 32if(major){ devno=MKDEV(major,0); ret=register_chrdev_region(devno,N_DEVS_MINOR,DEV_NAME); } else{ ret=alloc_chrdev_region(&devno,0,N_DEVS_......
  • Linux上磁盘扩容
    【后端】Linux上磁盘扩容Centos7硬盘扩容第一步:查看硬盘情况 命令:lsblk 第二步:查看磁盘空间大小,命令:df-h   第三步:增加磁盘空间,使用下图vm虚拟机增加方式。物理机直接按照挂在上去。 第四步:使用fdisk/dev/sda创建新分区 ......
  • Linux下部署kkFileView4.3.0版本
     注意:kkFileView从4.0.0以后无发行版本可下载,只能下载源码方式通过Idea等工具进行打包。https://gitee.com/kekingcn/file-online-preview/releases下载最新版本源码文件。这里以4.3.0版本为例。下载zip文件 解压zip文件通过Idea打开项目源码。并通过maven进......