Files
hzdyjs/退学、休学、复学、毕业/start_services.sh
T
2025-12-25 18:01:27 +08:00

124 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
# ===========================================
# 学生状态变更处理服务启动脚本
# 用于启动所有相关的处理服务
# ===========================================
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONTROL_SCRIPT="${SCRIPT_DIR}/control_scripts.sh"
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
log() {
local level="$1"
local message="$2"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
echo -e "${timestamp} [$level] $message"
}
success() {
log "${GREEN}SUCCESS${NC}" "$1"
}
error() {
log "${RED}ERROR${NC}" "$1"
}
warning() {
log "${YELLOW}WARNING${NC}" "$1"
}
# Check if control script exists and is executable
if [[ ! -x "$CONTROL_SCRIPT" ]]; then
error "Control script not found or not executable: $CONTROL_SCRIPT"
exit 1
fi
# Function to start a service
start_service() {
local service_name="$1"
local service_desc="$2"
log "INFO" "Starting $service_desc..."
if "$CONTROL_SCRIPT" start "$service_name"; then
success "$service_desc started successfully"
return 0
else
error "Failed to start $service_desc"
return 1
fi
}
# Function to check service status
check_service() {
local service_name="$1"
local service_desc="$2"
log "INFO" "Checking $service_desc status..."
if "$CONTROL_SCRIPT" status "$service_name" | grep -q "is running"; then
success "$service_desc is running"
return 0
else
warning "$service_desc is not running"
return 1
fi
}
# Main function
main() {
log "INFO" "=== 学生状态变更处理服务启动脚本 ==="
log "INFO" "Starting all student status change processing services..."
local failed_services=()
# Start changes processing service
if ! start_service "changes" "学生状态变更处理服务 (休学/退学/毕业)"; then
failed_services+=("changes")
fi
# Start resume processing service
if ! start_service "resume" "学生复学处理服务"; then
failed_services+=("resume")
fi
# Wait a moment for services to fully start
sleep 3
log "INFO" "=== 服务状态检查 ==="
# Check all services status
check_service "changes" "学生状态变更处理服务 (休学/退学/毕业)"
check_service "resume" "学生复学处理服务"
# Summary
log "INFO" "=== 启动完成 ==="
if [[ ${#failed_services[@]} -eq 0 ]]; then
success "所有服务启动成功"
echo ""
echo "服务控制命令:"
echo " 查看状态: $CONTROL_SCRIPT statusall"
echo " 停止服务: $CONTROL_SCRIPT stopall"
echo " 重启服务: $CONTROL_SCRIPT restart changes|resume"
echo ""
echo "日志文件位置: /var/log/student_status_change/"
else
error "以下服务启动失败: ${failed_services[*]}"
echo ""
echo "故障排除:"
echo "1. 检查数据库配置: cat data.conf"
echo "2. 查看日志文件: tail -f /var/log/student_status_change/*.log"
echo "3. 检查数据库连接: mysql -h\$DB_HOST -P\$DB_PORT -u\$DB_USER -p\$DB_PASS \$DB_NAME -e 'SELECT 1;'"
exit 1
fi
}
# Run main function
main "$@"