#!/bin/sh /etc/rc.common START=48 STOP=11 USE_PROCD=1 # QuecManager Logging Management Service # Handles log rotation, cleanup, and logging system initialization start_service() { echo "Starting QuecManager Logging Management..." # Initialize centralized logging system echo "Initializing centralized logging directories..." # Source logger with error handling if . /www/cgi-bin/services/quecmanager_logger.sh 2>/dev/null; then qm_init_logs LOGGER_AVAILABLE=1 else echo "Warning: Could not load logger, creating directories manually" mkdir -p "/tmp/quecmanager/logs/daemons" "/tmp/quecmanager/logs/services" "/tmp/quecmanager/logs/settings" "/tmp/quecmanager/logs/system" 2>/dev/null || true LOGGER_AVAILABLE=0 fi # Set proper permissions chmod 755 "/tmp/quecmanager/logs" "/tmp/quecmanager/logs/daemons" "/tmp/quecmanager/logs/services" "/tmp/quecmanager/logs/settings" "/tmp/quecmanager/logs/system" 2>/dev/null || true # Create status and readme files cat > "/tmp/quecmanager/logs/status.json" </dev/null || true # Create README for administrators cat > "/tmp/quecmanager/logs/README.txt" </dev/null || true # Log the initialization (only if logger is available) if [ "$LOGGER_AVAILABLE" = "1" ]; then qm_log_info "system" "quecmanager_logging" "Centralized logging system initialized" fi echo "Centralized logging directories initialized" # Start periodic log cleanup daemon echo "Starting periodic log cleanup daemon..." procd_open_instance cleanup procd_set_param command sh -c 'while true; do sleep 21600; /www/cgi-bin/services/cleanup_logs.sh; done' procd_set_param respawn procd_set_param stdout 1 procd_set_param stderr 1 procd_close_instance echo "Log cleanup daemon started (runs every 6 hours)" # Log the completion (only if logger is available) if [ "$LOGGER_AVAILABLE" = "1" ]; then qm_log_info "system" "quecmanager_logging" "QuecManager logging management started - cleanup every 6 hours" fi echo "QuecManager Logging Management started" } stop_service() { # Log shutdown (only if logger is available) if . /www/cgi-bin/services/quecmanager_logger.sh 2>/dev/null; then qm_log_info "system" "quecmanager_logging" "QuecManager logging management stopping" 2>/dev/null || true fi # procd will handle stopping all instances automatically echo "Stopping QuecManager Logging Management." }