124 lines
3.2 KiB
Bash
Executable File
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 "$@"
|