当前位置: 首页 > article >正文

【jar包启动命令简单分享】

最近在做springcloud项目,整理了下启停脚本

批量启动脚本


#!/bin/bash

APP_HOME=/data/java/
APP_NAMES=(
    "ruoyi-auth.jar"
    "ruoyi-gateway.jar"
    "ruoyi-modules-file.jar"
    "ruoyi-modules-gen.jar"
    "ruoyi-modules-job.jar"
)
MEMORY_PARAMS=(
    "-Xms256m -Xmx512m"
    "-Xms256m -Xmx512m"
    "-Xms256m -Xmx512m"
    "-Xms256m -Xmx512m"
    "-Xms256m -Xmx512m"
)

function start() {
    echo "启动中"
    cd $APP_HOME
    for ((i = 0; i < ${#APP_NAMES[@]}; i++)); do
        APP_NAME=${APP_NAMES[$i]}
        MEMORY_PARAM=${MEMORY_PARAMS[$i]}
        LOG_FILE="/data/logs/nohup-$(basename $APP_NAME .jar)-$(date +%Y-%m-%d).log"
        nohup java -jar $MEMORY_PARAM $APP_NAME >> $LOG_FILE 2>&1 &
    done
    echo "启动成功"
}

function stop() {
    echo "正在关闭"
    for APP_NAME in "${APP_NAMES[@]}"; do
        pkill -f $APP_NAME
        while pgrep -f $APP_NAME > /dev/null; do
            sleep 1
        done
    done
    echo "关闭成功"
}

if [ "$1" = "start" ]; then
    start
elif [ "$1" = "stop" ]; then
    stop
elif [ "$1" = "restart" ]; then
    stop
    sleep 3
    start
else
    echo "Usage: $0 [start|stop|restart]"
fi

单个jar包启动名称

#!/bin/bash

APP_HOME=/data/java/
APP_NAME=**.jar

function get_log_file() {
    local app_base_name=$(basename "$APP_NAME" .jar)
    echo "/data/logs/nohup-$app_base_name-$(date +%Y-%m-%d).log"
}

function start() {
    echo "$APP_HOME $APP_NAME 启动中"
    cd "$APP_HOME" || return
    local LOG_FILE=$(get_log_file)
    nohup java -jar -Xms256m -Xmx512m "$APP_NAME" >> "$LOG_FILE" 2>&1 &
    echo "$APP_NAME 启动成功"
    # 非阻塞方式查看日志
    (sleep 5; tail -n 20 "$LOG_FILE") &
}

function stop() {
    echo "$APP_NAME 正在关闭"
    pkill -f "$APP_NAME"
    while pgrep -f "$APP_NAME" > /dev/null; do
        sleep 1
    done
    echo "$APP_NAME 关闭成功"
}

if [ "$1" = "start" ]; then
    start
elif [ "$1" = "stop" ]; then
    stop
elif [ "$1" = "restart" ]; then
    stop
    sleep 3
    start
else
    echo "Usage: $0 [start|stop|restart]"
fi

后续有时间再研究docker+k8s


http://www.kler.cn/a/550137.html

相关文章:

  • LeetCode1299
  • Selenium+Pytest自动化测试框架实战
  • springboot接入ShardingJDBC
  • 科技引领未来,中建海龙C-MiC 2.0技术树立模块化建筑新标杆
  • 高校体育场管理系统系统|体育场管理系统小程序设计与实现(源码+数据库+文档)
  • 在 Python 里,None 可能是调用者主动传入的值,所以不能用 None 来判断参数是否被提供。
  • .NET软件开发框架简记
  • 软件定义汽车时代的功能安全和信息安全
  • 知识文档管理系统哪个好?对比25年主流11款
  • SpringBoot(7)-Swagger
  • 【抽象代数】1.2. 半群与群
  • Kubernetes控制平面组件:Kubernetes如何使用etcd
  • 腾讯云ChatBI通过中国信通院大模型驱动的智能数据分析工具专项测试
  • Golang-GMP调度模型
  • OpenGL ES学习大纲
  • Android Studio SVN下载安装
  • rustdesk编译修改名字
  • 观察者模式说明(C语言版本)
  • 告别第三方云存储!用File Browser在Windows上自建云盘随时随地访问
  • Spring Bean 生命周期的执行流程