启动&重启jar
#!/bin/bash
# 设置颜色代码 \033、\e和\E是等价的
RED='\033[0;31m' # 红色
GBLUE='\033[0;36m' #
GREEN='\033[0;32m' # 绿色
PURPLE='\033[0;35m' # 紫色
PINK='\E[0;35m' # 粉红
YELOW='\E[0;33m' # 黄
BLUE='\E[0;34m' # 蓝
NC='\033[0m' # 恢复默认颜色
# 获取脚本所在目录
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# 指定Java程序的名称和日志文件名
JAR_NAME=$(ls *.jar 2>/dev/null) # 获取当前目录下的第一个JAR文件 (假设有多个文件, 可以根据实际情况进行调整)
# 检查是否找到JAR文件
if [ -z "$JAR_NAME" ]; then
echo -e "${RED}================ No JAR file found in the current directory......${NC}"
exit 1
fi
LOG_FILE="$SCRIPT_DIR/$(basename "$JAR_NAME" .jar).log" # 使用 basename "JAR_NAME" .jar 提取JAR文件名(不带路径和扩展名), 然后构建对应的日志文件名
function print_error_and_exit() {
echo -e "${RED}Error: $1${NC}"
exit 1 # 打印错误消息并退出脚本
}
# 指定Java程序的名称
# JAR_NAME="ZFXYMediCommunityWebServer-1.0.jar"
# 检查程序是否在运行
if pgrep -f "$JAR_NAME" > /dev/null; then
# 如果程序在运行,停止它
echo -e "${RED}---------------- stopping${NC} $JAR_NAME......"
pkill -f "$JAR_NAME" || print_error_and_exit "${RED}================ Failed to stop $JAR_NAME......${NC}"
sleep 5 # 等待一段时间确保程序已经停止
echo -e "${RED}---------------- $JAR_NAME stopped......${NC}"
else
echo -e "${RED}---------------- $JAR_NAME is not running......${NC}"
fi
# 启动程序并将日志输出到 b.log
echo -e "${GREEN}---------------- starting${NC} $JAR_NAME......"
# nohup java -jar "$SCRIPT_DIR/$JAR_NAME" > "$SCRIPT_DIR/ZFXYMediCommunityWebServer-1.0.log" 2>&1 &
# echo -e "${GREEN}$JAR_NAME started...${NC} check $SCRIPT_DIR/ZFXYMediCommunityWebServer-1.0.log for logs..."
nohup java -jar "$SCRIPT_DIR/$JAR_NAME" > "$LOG_FILE" 2>&1 &
echo -e "${GREEN}---------------- $JAR_NAME started......${NC}"
echo -e "${GBLUE}---------------- check $LOG_FILE for logs......${NC}"
标签:NAME,jar,重启,NC,JAR,echo,Linux,......
From: https://blog.csdn.net/qq_54216005/article/details/140245397