linux简版启动,关闭jar命令

启动命令:start.sh

#!/bin/sh
DEFAULT_JAR_NAME="tongyan-resource-0.0.1-SNAPSHOT"
JAVA_HOME=/home/tjgeo/tools/jdk1.8.0_251
LOG_PATH='/home/tjgeo/logs/resource'

# 环境变量配置
export PATH=$PATH:$JAVA_HOME/bin CLASSPATH=$JAVA_HOME/lib/ JAVA_HOME

# 接收参数/拼接jar路径
JAR_NAME=${1:-$DEFAULT_JAR_NAME}
JAR_FILE="../${JAR_NAME}.jar"

# 日志目录检查
[ ! -d "$LOG_PATH" ] && mkdir -p "$LOG_PATH" && echo ">>> 日志目录已创建:$LOG_PATH <<<"

# jar包存在性检查
[ ! -f "$JAR_FILE" ] && echo ">>> 错误:jar包不存在!路径:$JAR_FILE <<<" && exit 1

# 启动应用
rm -f tpid
nohup java -jar "$JAR_FILE" >> "$LOG_PATH/nohup.log" 2>&1 &
echo $! > tpid

# 输出启动信息
echo ">>> 启动成功!PID=$! <<<"
echo ">>> 启动jar包:$JAR_FILE <<<"
echo ">>> 日志路径:$LOG_PATH/nohup.log <<<"

使用方法:

默认包名:
sh 你的脚本名.sh

指定包名:
sh 你的脚本名.sh my-resource-start

停止命令:stop.sh

#!/bin/bash
DEFAULT_JAR_NAME="tongyan-resource-0.0.1-SNAPSHOT"

# 接收参数/拼接jar名称
JAR_NAME=${1:-$DEFAULT_JAR_NAME}
JAR_FILE="${JAR_NAME}.jar"

# 查找进程PID
PID=$(ps -ef | grep "$JAR_FILE" | grep -v grep | awk '{print $2}')

# 进程判断与停止逻辑
if [ -z "$PID" ]; then
    echo ">>> 应用【$JAR_FILE】已停止(无相关进程) <<<"
else
    echo ">>> 停止应用【$JAR_FILE】,PID:$PID <<<"
    kill $PID && sleep 3
    # 检查并强制杀死残留进程
    PID_CHECK=$(ps -ef | grep "$JAR_FILE" | grep -v grep | awk '{print $2}')
    [ -n "$PID_CHECK" ] && echo ">>> 优雅停止失败,强制杀死PID:$PID_CHECK <<<" && kill -9 $PID_CHECK
    echo ">>> 应用【$JAR_FILE】已停止 <<<"
fi

使用方法:

默认包名:
sh 你的脚本名.sh

指定包名:
sh 你的脚本名.sh my-resource-stop

 

posted @ 2026-01-19 13:49  李文学  阅读(0)  评论(0)    收藏  举报