141 lines
3.3 KiB
Bash
Executable File
141 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
||
# =============================================
|
||
# Print Service 启动脚本
|
||
# =============================================
|
||
|
||
set -e
|
||
|
||
SERVICE_NAME="print-service"
|
||
SERVICE_PORT="8089"
|
||
APP_DIR="/opt/erp/${SERVICE_NAME}"
|
||
JAR_FILE="${APP_DIR}/${SERVICE_NAME}.jar"
|
||
LOG_FILE="${APP_DIR}/logs/${SERVICE_NAME}.log"
|
||
PID_FILE="${APP_DIR}/${SERVICE_NAME}.pid"
|
||
|
||
# 环境配置
|
||
export DB_HOST=${DB_HOST:-"111.229.80.149"}
|
||
export DB_PORT=${DB_PORT:-"3306"}
|
||
export DB_NAME=${DB_NAME:-"erp_db"}
|
||
export DB_USER=${DB_USER:-"root"}
|
||
export DB_PASSWORD=${DB_PASSWORD:-"nihao588+"}
|
||
export REDIS_HOST=${REDIS_HOST:-"111.229.80.149"}
|
||
export REDIS_PORT=${REDIS_PORT:-"6379"}
|
||
export REDIS_PASSWORD=${REDIS_PASSWORD:-"Y(@r5tGk9$Lp2"}
|
||
export NACOS_HOST=${NACOS_HOST:-"111.229.80.149"}
|
||
export NACOS_PORT=${NACOS_PORT:-"8848"}
|
||
export NACOS_NAMESPACE=${NACOS_NAMESPACE:-"public"}
|
||
export SPRING_PROFILES_ACTIVE=${SPRING_PROFILES_ACTIVE:-"dev"}
|
||
export PRINT_SERVICE_PORT=${PRINT_SERVICE_PORT:-"8089"}
|
||
|
||
# 创建目录
|
||
mkdir -p ${APP_DIR}/logs
|
||
|
||
# 下载JAR(如果不存在)
|
||
if [ ! -f "${JAR_FILE}" ]; then
|
||
echo "正在下载 ${SERVICE_NAME}.jar..."
|
||
# 替换为实际仓库地址
|
||
# wget -O ${JAR_FILE} http://nexus.erp.com/repository/releases/com/erp/${SERVICE_NAME}/1.0.0/${SERVICE_NAME}.jar
|
||
echo "JAR文件不存在,请先构建: mvn clean package -DskipTests"
|
||
exit 1
|
||
fi
|
||
|
||
# 检查端口
|
||
check_port() {
|
||
if netstat -tuln | grep -q ":${SERVICE_PORT} "; then
|
||
echo "错误: 端口 ${SERVICE_PORT} 已被占用"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
# 启动服务
|
||
start() {
|
||
check_port
|
||
echo "启动 ${SERVICE_NAME}..."
|
||
|
||
nohup java -Xms256m -Xmx512m -XX:+UseG1GC \
|
||
-jar ${JAR_FILE} \
|
||
--spring.profiles.active=${SPRING_PROFILES_ACTIVE} \
|
||
--server.port=${SERVICE_PORT} \
|
||
> ${LOG_FILE} 2>&1 &
|
||
|
||
echo $! > ${PID_FILE}
|
||
echo "${SERVICE_NAME} 已启动, PID: $(cat ${PID_FILE})"
|
||
|
||
# 等待启动
|
||
sleep 5
|
||
|
||
# 检查健康状态
|
||
if curl -sf http://localhost:${SERVICE_PORT}/actuator/health > /dev/null; then
|
||
echo "${SERVICE_NAME} 启动成功!"
|
||
else
|
||
echo "${SERVICE_NAME} 启动中,请检查日志: ${LOG_FILE}"
|
||
fi
|
||
}
|
||
|
||
# 停止服务
|
||
stop() {
|
||
if [ -f ${PID_FILE} ]; then
|
||
PID=$(cat ${PID_FILE})
|
||
echo "停止 ${SERVICE_NAME} (PID: ${PID})..."
|
||
kill ${PID} 2>/dev/null || true
|
||
rm -f ${PID_FILE}
|
||
echo "${SERVICE_NAME} 已停止"
|
||
else
|
||
echo "${SERVICE_NAME} 未运行"
|
||
fi
|
||
}
|
||
|
||
# 重启服务
|
||
restart() {
|
||
stop
|
||
sleep 2
|
||
start
|
||
}
|
||
|
||
# 查看状态
|
||
status() {
|
||
if [ -f ${PID_FILE} ]; then
|
||
PID=$(cat ${PID_FILE})
|
||
if ps -p ${PID} > /dev/null; then
|
||
echo "${SERVICE_NAME} 正在运行 (PID: ${PID})"
|
||
else
|
||
echo "${SERVICE_NAME} 未运行 (PID文件存在但进程已退出)"
|
||
fi
|
||
else
|
||
echo "${SERVICE_NAME} 未运行"
|
||
fi
|
||
}
|
||
|
||
# 查看日志
|
||
logs() {
|
||
if [ -f ${LOG_FILE} ]; then
|
||
tail -f ${LOG_FILE}
|
||
else
|
||
echo "日志文件不存在: ${LOG_FILE}"
|
||
fi
|
||
}
|
||
|
||
case "$1" in
|
||
start)
|
||
start
|
||
;;
|
||
stop)
|
||
stop
|
||
;;
|
||
restart)
|
||
restart
|
||
;;
|
||
status)
|
||
status
|
||
;;
|
||
logs)
|
||
logs
|
||
;;
|
||
*)
|
||
echo "用法: $0 {start|stop|restart|status|logs}"
|
||
exit 1
|
||
;;
|
||
esac
|
||
|
||
exit 0
|