Updated framework
This commit is contained in:
@@ -18,47 +18,102 @@ set -e
|
||||
# ----------------------------------------------------------------------------------------------
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
source "$SCRIPT_DIR/../Master.conf"
|
||||
source "$SCRIPT_DIR/../common.sh"
|
||||
|
||||
# Load central config
|
||||
load_master_conf
|
||||
|
||||
# Parse CLI args (flags + VAR=value)
|
||||
parse_args "$@"
|
||||
|
||||
# Optional: MOVER_STOP_TIMEOUT in seconds (default from Master.conf or 30s)
|
||||
# CONFIG
|
||||
MOVER_STOP_TIMEOUT=${MOVER_STOP_TIMEOUT:-30}
|
||||
validate_int MOVER_STOP_TIMEOUT "$MOVER_STOP_TIMEOUT"
|
||||
|
||||
# Functions
|
||||
# STATUS MODE
|
||||
if [[ "$SHOW_STATUS" == true ]]; then
|
||||
echo
|
||||
echo "=================================================="
|
||||
echo " ℹ️ MOVER STOP STATUS"
|
||||
echo "--------------------------------------------------"
|
||||
echo " ⏱ Timeout: ${MOVER_STOP_TIMEOUT}s"
|
||||
echo " 📡 Dry Run: $DRY_RUN"
|
||||
echo "=================================================="
|
||||
exit 0
|
||||
fi
|
||||
|
||||
notify_users() {
|
||||
wall "⚠️ Unraid Mover will stop in ${MOVER_STOP_TIMEOUT} second(s)."
|
||||
}
|
||||
# HEADER
|
||||
echo
|
||||
echo "============================================================"
|
||||
echo " 🚀 MOVER STOP STARTING"
|
||||
echo "------------------------------------------------------------"
|
||||
echo " ⏱ Timeout: ${MOVER_STOP_TIMEOUT}s"
|
||||
echo " 🧪 Dry Run: $DRY_RUN"
|
||||
echo "============================================================"
|
||||
|
||||
log "ℹ️ Checking mover status"
|
||||
|
||||
# FUNCTIONS
|
||||
check_mover_running() {
|
||||
pgrep -f "emhttp.*Mover" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
notify_users() {
|
||||
warn "🟡 Notifying users: mover stopping soon"
|
||||
wall "⚠️ Unraid Mover will stop in ${MOVER_STOP_TIMEOUT} second(s)."
|
||||
}
|
||||
|
||||
stop_mover() {
|
||||
if [ "$DRY_RUN" = true ]; then
|
||||
echo "[DRY-RUN] Would stop the Mover process"
|
||||
|
||||
if [[ "$DRY_RUN" == true ]]; then
|
||||
warn "🧪 Would stop Unraid Mover process"
|
||||
return
|
||||
fi
|
||||
|
||||
info "🟡 Stopping Unraid Mover process"
|
||||
|
||||
if pkill -f "emhttp.*Mover"; then
|
||||
info "🟢 Mover stopped successfully"
|
||||
else
|
||||
echo "Stopping Mover..."
|
||||
# Unraid native way: kill the mover process gracefully
|
||||
pkill -f "emhttp.*Mover"
|
||||
warn "🔴 Failed to stop mover (may not be running)"
|
||||
fi
|
||||
}
|
||||
|
||||
# MAIN
|
||||
|
||||
echo "==== Mover Stop Script Started: $(date) ===="
|
||||
# EXECUTION
|
||||
START_TIME=$(date +%s)
|
||||
|
||||
if check_mover_running; then
|
||||
info "🟡 Mover is running"
|
||||
|
||||
notify_users
|
||||
|
||||
info "⏱ Waiting ${MOVER_STOP_TIMEOUT}s before stopping"
|
||||
sleep "$MOVER_STOP_TIMEOUT"
|
||||
|
||||
stop_mover
|
||||
echo "Mover stopped."
|
||||
|
||||
else
|
||||
echo "Mover is not running."
|
||||
fi
|
||||
info "🟢 Mover is not running"
|
||||
fi
|
||||
|
||||
# FINALIZE
|
||||
END_TIME=$(date +%s)
|
||||
DURATION=$((END_TIME - START_TIME))
|
||||
|
||||
# SUMMARY
|
||||
echo
|
||||
echo "============================================================"
|
||||
|
||||
if check_mover_running; then
|
||||
echo " 🟡 MOVER STOP SUMMARY"
|
||||
echo "------------------------------------------------------------"
|
||||
echo " ⏱ Duration: ${DURATION}s"
|
||||
echo " 📡 Status: 🟡 STILL RUNNING OR UNCERTAIN"
|
||||
else
|
||||
echo " 🟢 MOVER STOP SUMMARY"
|
||||
echo "------------------------------------------------------------"
|
||||
echo " ⏱ Duration: ${DURATION}s"
|
||||
echo " 📡 Status: 🟢 STOPPED / NOT RUNNING"
|
||||
fi
|
||||
|
||||
echo "============================================================"
|
||||
|
||||
info "ℹ️ Mover stop operation complete"
|
||||
Reference in New Issue
Block a user