#!/bin/bash set -e # ---------------------------------------------------------------------------------------------- # ------------------------ Stop all running Rsync processes for Unraid ------------------------- # ---------------------------------------------------------------------------------------------- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/../Master.conf" source "$SCRIPT_DIR/../common.sh" parse_args "$@" # STATUS MODE if [[ "$SHOW_STATUS" == true ]]; then echo echo "==================================================" echo " โ„น๏ธ RSYNC STOP STATUS" echo "--------------------------------------------------" echo " ๐Ÿ”„ Target: rsync processes" echo " ๐Ÿงช Dry Run: $DRY_RUN" echo "==================================================" exit 0 fi # HEADER echo echo "============================================================" echo " ๐Ÿš€ RSYNC STOP STARTING" echo "------------------------------------------------------------" echo " ๐Ÿ”„ Target: all rsync processes" echo " ๐Ÿงช Dry Run: $DRY_RUN" echo "============================================================" log "โ„น๏ธ Checking for running rsync processes" # FUNCTIONS check_rsync_running() { pgrep -f rsync >/dev/null 2>&1 } stop_rsync_processes() { if [[ "$DRY_RUN" == true ]]; then warn "๐Ÿงช Would stop all rsync processes" return fi if check_rsync_running; then info "๐ŸŸก Stopping rsync processes" # safer than blind pkill message-only: pkill -f rsync sleep 1 if check_rsync_running; then warn "๐ŸŸก Some rsync processes may still be running" else info "๐ŸŸข All rsync processes stopped successfully" fi else info "๐ŸŸข No rsync processes currently running" fi } # EXECUTION START_TIME=$(date +%s) stop_rsync_processes END_TIME=$(date +%s) DURATION=$((END_TIME - START_TIME)) # SUMMARY echo echo "============================================================" if check_rsync_running; then echo " ๐ŸŸก RSYNC STOP SUMMARY" echo "------------------------------------------------------------" echo " ๐Ÿ”„ Status: ๐ŸŸก SOME PROCESSES MAY REMAIN" echo " โฑ Duration: ${DURATION}s" else echo " ๐ŸŸข RSYNC STOP SUMMARY" echo "------------------------------------------------------------" echo " ๐Ÿ”„ Status: ๐ŸŸข ALL STOPPED" echo " โฑ Duration: ${DURATION}s" fi echo "============================================================" info "โ„น๏ธ Rsync stop operation complete"