Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f0369c6246 | ||
|
|
0027f55184 |
@@ -34,7 +34,7 @@ github下载慢也可以试试从gitee下载,点击下载[gitee来源kafka-con
|
||||
## 快速使用
|
||||
### Windows
|
||||
1. 解压缩zip安装包
|
||||
2. 进入bin目录(必须在bin目录下),双击执行`start.bat`启动
|
||||
2. 进入bin目录, 双击执行`start.bat`启动; 如果使用PowerShell, 也可以选择运行`start.ps1`启动
|
||||
3. 停止:直接关闭启动的命令行窗口即可
|
||||
|
||||
### Linux或Mac OS
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<includes>
|
||||
<include>*.sh</include>
|
||||
<include>*.bat</include>
|
||||
<include>*.ps1</include>
|
||||
</includes>
|
||||
<outputDirectory>bin</outputDirectory>
|
||||
<fileMode>0755</fileMode>
|
||||
|
||||
@@ -1,13 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
PREFIX='./'
|
||||
CMD=$0
|
||||
if [[ $CMD == $PREFIX* ]]; then
|
||||
CMD=${CMD:2}
|
||||
# 获取脚本真实路径(兼容Linux和macOS)
|
||||
if [ -L "$0" ]; then
|
||||
# 处理符号链接
|
||||
if command -v greadlink >/dev/null 2>&1; then
|
||||
SCRIPT_PATH=$(greadlink -f "$0")
|
||||
elif command -v readlink >/dev/null 2>&1; then
|
||||
SCRIPT_PATH=$(readlink -f "$0")
|
||||
else
|
||||
# 使用perl作为备选
|
||||
SCRIPT_PATH=$(perl -e 'use Cwd "abs_path"; print abs_path(shift)' "$0" 2>/dev/null)
|
||||
fi
|
||||
else
|
||||
SCRIPT_PATH="$0"
|
||||
fi
|
||||
SCRIPT_DIR=$(dirname "`pwd`/$CMD")
|
||||
PROJECT_DIR=`dirname "$SCRIPT_DIR"`
|
||||
|
||||
# 最终回退方案
|
||||
if [ -z "$SCRIPT_PATH" ] || [ ! -f "$SCRIPT_PATH" ]; then
|
||||
SCRIPT_PATH="$0"
|
||||
fi
|
||||
|
||||
# 计算项目根目录
|
||||
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
|
||||
PROJECT_DIR=$(cd "$SCRIPT_DIR" && cd .. && pwd 2>/dev/null)
|
||||
|
||||
# 验证项目目录是否存在
|
||||
if [ ! -d "$PROJECT_DIR" ]; then
|
||||
echo "ERROR: Failed to determine project directory!" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 不要修改进程标记,作为进程属性关闭使用
|
||||
PROCESS_FLAG="kafka-console-ui-process-flag:${PROJECT_DIR}"
|
||||
pkill -f $PROCESS_FLAG
|
||||
echo 'Stop Kafka-console-ui!'
|
||||
|
||||
# 停止前检查进程是否存在
|
||||
if pgrep -f "$PROCESS_FLAG" >/dev/null; then
|
||||
# 先尝试正常停止
|
||||
pkill -f "$PROCESS_FLAG"
|
||||
|
||||
# 等待进程退出
|
||||
TIMEOUT=10
|
||||
while [ $TIMEOUT -gt 0 ]; do
|
||||
if ! pgrep -f "$PROCESS_FLAG" >/dev/null; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
TIMEOUT=$((TIMEOUT - 1))
|
||||
done
|
||||
|
||||
# 检查是否仍有进程存在
|
||||
if pgrep -f "$PROCESS_FLAG" >/dev/null; then
|
||||
# 强制终止
|
||||
pkill -9 -f "$PROCESS_FLAG"
|
||||
echo "Stop Kafka-console-ui! (force killed)"
|
||||
else
|
||||
echo "Stop Kafka-console-ui! (gracefully stopped)"
|
||||
fi
|
||||
else
|
||||
echo "Kafka-console-ui is not running."
|
||||
fi
|
||||
@@ -1,8 +1,38 @@
|
||||
@echo off
|
||||
|
||||
rem MAIN_CLASS=org.springframework.boot.loader.JarLauncher
|
||||
rem JAVA_HOME=jre1.8.0_66
|
||||
set JAVA_CMD=%JAVA_HOME%\bin\java
|
||||
set JAVA_OPTS=-Xmx512m -Xms512m -Xmn256m -Xss256k -Dfile.encoding=utf-8
|
||||
set CONFIG_FILE=../config/application.yml
|
||||
set TARGET=../lib/kafka-console-ui.jar
|
||||
set DATA_DIR=..
|
||||
"%JAVA_CMD%" -jar %TARGET% --spring.config.location=%CONFIG_FILE% --data.dir=%DATA_DIR%
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
set "BIN_DIR=%~dp0"
|
||||
if not "%BIN_DIR:~-1%"=="\" set "BIN_DIR=%BIN_DIR%\"
|
||||
|
||||
set "BASE_DIR=%BIN_DIR%.."
|
||||
for %%I in ("%BASE_DIR%") do set "BASE_DIR=%%~fI"
|
||||
|
||||
if defined JAVA_HOME (
|
||||
set "JAVA_CMD=%JAVA_HOME%\bin\java"
|
||||
) else (
|
||||
echo ERROR: JAVA_HOME is not defined
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set "JAVA_OPTS=-Xmx512m -Xms512m -Xmn256m -Xss256k -Dfile.encoding=utf-8"
|
||||
|
||||
set "CONFIG_FILE=%BASE_DIR%\config\application.yml"
|
||||
set "TARGET=%BASE_DIR%\lib\kafka-console-ui.jar"
|
||||
set "DATA_DIR=%BASE_DIR%"
|
||||
set "LOG_HOME=%BASE_DIR%"
|
||||
|
||||
if not exist "%TARGET%" (
|
||||
echo ERROR: Jar file not found at [%TARGET%]
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "%CONFIG_FILE%" (
|
||||
echo WARNING: Config file not found at [%CONFIG_FILE%]
|
||||
)
|
||||
|
||||
"%JAVA_CMD%" %JAVA_OPTS% -jar "%TARGET%" --spring.config.location="%CONFIG_FILE%" --data.dir="%DATA_DIR%" --logging.home="%LOG_HOME%"
|
||||
|
||||
endlocal
|
||||
41
bin/start.ps1
Normal file
41
bin/start.ps1
Normal file
@@ -0,0 +1,41 @@
|
||||
# PowerShell
|
||||
# Set the script execution policy. If necessary, execute this command in PowerShell and then run the script.
|
||||
# Set-ExecutionPolicy Bypass -Scope Process -Force
|
||||
|
||||
param()
|
||||
|
||||
$BIN_DIR = $PSScriptRoot
|
||||
if (-not $BIN_DIR.EndsWith('\')) {
|
||||
$BIN_DIR += '\'
|
||||
}
|
||||
|
||||
$BASE_DIR = (Get-Item (Join-Path $BIN_DIR "..")).FullName
|
||||
|
||||
if (-not $env:JAVA_HOME) {
|
||||
Write-Error "ERROR: JAVA_HOME is not defined"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$JAVA_OPTS = "-Xmx512m -Xms512m -Xmn256m -Xss256k -Dfile.encoding=utf-8"
|
||||
|
||||
$CONFIG_FILE = Join-Path $BASE_DIR "config\application.yml"
|
||||
$TARGET = Join-Path $BASE_DIR "lib\kafka-console-ui.jar"
|
||||
$DATA_DIR = $BASE_DIR
|
||||
$LOG_HOME = $BASE_DIR
|
||||
|
||||
if (-not (Test-Path $TARGET -PathType Leaf)) {
|
||||
Write-Error "ERROR: Jar file not found at [$TARGET]"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if (-not (Test-Path $CONFIG_FILE -PathType Leaf)) {
|
||||
Write-Warning "WARNING: Config file not found at [$CONFIG_FILE]"
|
||||
}
|
||||
|
||||
$javaCmd = Join-Path $env:JAVA_HOME "bin\java.exe"
|
||||
|
||||
& $javaCmd $JAVA_OPTS.Split() `
|
||||
-jar $TARGET `
|
||||
"--spring.config.location=$CONFIG_FILE" `
|
||||
"--data.dir=$DATA_DIR" `
|
||||
"--logging.home=$LOG_HOME"
|
||||
52
bin/start.sh
52
bin/start.sh
@@ -1,29 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 设置jvm堆大小及栈大小,栈大小最少设置为256K,不要小于这个值,比如设置为128,太小了
|
||||
# 设置jvm堆大小及栈大小
|
||||
JAVA_MEM_OPTS="-Xmx512m -Xms512m -Xmn256m -Xss256k"
|
||||
|
||||
PREFIX='./'
|
||||
CMD=$0
|
||||
if [[ $CMD == $PREFIX* ]]; then
|
||||
CMD=${CMD:2}
|
||||
# 获取脚本真实路径(兼容Linux和macOS)
|
||||
if [ -L "$0" ]; then
|
||||
# 处理符号链接
|
||||
if command -v greadlink >/dev/null 2>&1; then
|
||||
# macOS使用greadlink(需brew install coreutils)
|
||||
SCRIPT_PATH=$(greadlink -f "$0")
|
||||
else
|
||||
# Linux使用readlink
|
||||
SCRIPT_PATH=$(readlink -f "$0")
|
||||
fi
|
||||
else
|
||||
SCRIPT_PATH="$0"
|
||||
fi
|
||||
SCRIPT_DIR=$(dirname "`pwd`/$CMD")
|
||||
PROJECT_DIR=`dirname "$SCRIPT_DIR"`
|
||||
|
||||
# 如果上述方法失败(如macOS无greadlink),使用替代方案
|
||||
if [ -z "$SCRIPT_PATH" ] || [ ! -f "$SCRIPT_PATH" ]; then
|
||||
# 使用perl跨平台解决方案
|
||||
SCRIPT_PATH=$(perl -e 'use Cwd "abs_path"; print abs_path(shift)' "$0" 2>/dev/null)
|
||||
fi
|
||||
|
||||
# 最终回退方案
|
||||
if [ -z "$SCRIPT_PATH" ] || [ ! -f "$SCRIPT_PATH" ]; then
|
||||
SCRIPT_PATH="$0"
|
||||
fi
|
||||
|
||||
# 计算项目根目录
|
||||
SCRIPT_DIR=$(dirname "$SCRIPT_PATH")
|
||||
PROJECT_DIR=$(cd "$SCRIPT_DIR" && cd .. && pwd)
|
||||
CONF_FILE="$PROJECT_DIR/config/application.yml"
|
||||
TARGET="$PROJECT_DIR/lib/kafka-console-ui.jar"
|
||||
|
||||
#设置h2文件根目录
|
||||
DATA_DIR=$PROJECT_DIR
|
||||
# 设置h2文件根目录
|
||||
DATA_DIR="$PROJECT_DIR"
|
||||
|
||||
# 日志目录,默认为当前工程目录下
|
||||
# 这个是错误输出,如果启动命令有误,输出到这个文件,应用日志不会输出到error.out,应用日志输出到上面的kafka-console-ui.log中
|
||||
ERROR_OUT="$PROJECT_DIR/error.out"
|
||||
# 不要修改进程标记,作为进程属性关闭使用,如果要修改,请把shutdown.sh里的该属性的值保持一致
|
||||
# 日志目录
|
||||
LOG_HOME="$PROJECT_DIR"
|
||||
PROCESS_FLAG="kafka-console-ui-process-flag:${PROJECT_DIR}"
|
||||
|
||||
JAVA_OPTS="$JAVA_OPTS $JAVA_MEM_OPTS -Dfile.encoding=utf-8"
|
||||
|
||||
nohup java -jar $JAVA_OPTS $TARGET --spring.config.location="$CONF_FILE" --logging.home="$PROJECT_DIR" --data.dir=$DATA_DIR $PROCESS_FLAG 1>/dev/null 2>$ERROR_OUT &
|
||||
# 启动应用
|
||||
nohup java -jar $JAVA_OPTS "$TARGET" \
|
||||
--spring.config.location="$CONF_FILE" \
|
||||
--logging.home="$LOG_HOME" \
|
||||
--data.dir="$DATA_DIR" \
|
||||
"$PROCESS_FLAG" >/dev/null 2>"$ERROR_OUT" &
|
||||
|
||||
echo "Kafka-console-ui Started!"
|
||||
echo "Kafka-console-ui Started! PID: $!"
|
||||
Reference in New Issue
Block a user