#!/bin/bash set -e # ---------------------------------------------------------------------------------------------- # ----------------- Stop all running User Scripts spawned by the User Scripts plugin ----------- # ---------------------------------------------------------------------------------------------- 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 " โ„น๏ธ USER SCRIPTS STATUS" echo "--------------------------------------------------" echo " ๐Ÿ” Target: /tmp/user.scripts processes" echo " ๐Ÿงช Dry Run: $DRY_RUN" echo "==================================================" exit 0 fi # HEADER echo echo "============================================================" echo " ๐Ÿš€ USER SCRIPTS STOP STARTING" echo "------------------------------------------------------------" echo " ๐Ÿ” Target: User Scripts Plugin processes" echo " ๐Ÿงช Dry Run: $DRY_RUN" echo "============================================================" log "โ„น๏ธ Scanning for User Scripts processes" # FUNCTIONS get_user_script_pids() { /usr/bin/ps -eo pid,cmd | grep "/tmp/user.scripts" | grep -v grep | awk '{print $1}' } stop_user_scripts() { local pids pids=$(get_user_script_pids) if [[ -z "$pids" ]]; then info "๐ŸŸข No running User Scripts found" return fi local count=0 for pid in $pids; do if [[ "$DRY_RUN" == true ]]; then warn "๐Ÿงช Would kill User Script PID $pid" else info "๐ŸŸก Killing User Script PID $pid" if kill "$pid" 2>/dev/null; then info "๐ŸŸข Killed PID $pid" else warn "๐Ÿ”ด Failed to kill PID $pid (may already be gone)" fi fi count=$((count + 1)) done if [[ "$DRY_RUN" == true ]]; then warn "๐Ÿงช Would stop $count User Script process(es)" else info "๐ŸŸข Process cleanup complete ($count process(es) targeted)" fi } # EXECUTION START_TIME=$(date +%s) stop_user_scripts END_TIME=$(date +%s) DURATION=$((END_TIME - START_TIME)) # SUMMARY echo echo "============================================================" if [[ "$DRY_RUN" == true ]]; then echo " ๐ŸŸก USER SCRIPTS SUMMARY" echo "------------------------------------------------------------" echo " ๐Ÿ” Status: ๐ŸŸก DRY RUN (no processes killed)" echo " โฑ Duration: ${DURATION}s" else local remaining remaining=$(get_user_script_pids) if [[ -z "$remaining" ]]; then echo " ๐ŸŸข USER SCRIPTS SUMMARY" echo "------------------------------------------------------------" echo " ๐Ÿ” Status: ๐ŸŸข ALL PROCESSES STOPPED" else echo " ๐ŸŸก USER SCRIPTS SUMMARY" echo "------------------------------------------------------------" echo " ๐Ÿ” Status: ๐ŸŸก SOME PROCESSES MAY STILL BE RUNNING" fi echo " โฑ Duration: ${DURATION}s" fi echo "============================================================" info "โ„น๏ธ User Scripts stop operation complete"