#!/usr/bin/env bash ### # File: sunshine-stop # Project: bin # File Created: Tuesday, 23rd August 2023 3:28:52 pm # Author: Josh.5 (jsunnex@gmail.com) # ----- # Last Modified: Friday, 23rd August 2023 4:21:00 pm # Modified By: Josh.5 (jsunnex@gmail.com) ### set -e exec >> >(tee -a /tmp/sunshine-exec-stop.log) 2>&1 echo echo "-------------------------------" echo date echo echo "-------------------------------" echo echo "**** Execute sunshine-stop ****" echo process_pid="$(cat /tmp/sunshine-exec-run.pid)" echo " - Found initial sunshine-run PID '${process_pid}'" echo " - Sending SIGINT to PID '${process_pid}'" kill -INT "${process_pid}" echo " - Checking for other sunshine-run processes '${process_pid}'" for process_pid in $(ps aux | grep -v grep | grep sunshine-run | awk '{print $2}'); do echo " - Sending SIGINT to PID '${process_pid}'" kill -INT "${process_pid}" 2>/dev/null sleep 0.5 counter=0 while kill -0 "$process_pid" 2>/dev/null; do echo " - Sending SIGTERM to PID '${process_pid}'" kill -TERM "$process_pid" 2>/dev/null counter=$((counter + 1)) [ "$counter" -gt 2 ] && break sleep 2 done counter=0 while kill -0 "$process_pid" 2>/dev/null; do echo " - Sending SIGKILL to PID '${process_pid}'" kill -KILL "$process_pid" 2>/dev/null counter=$((counter + 1)) [ "$counter" -gt 2 ] && break sleep 1 done done # Clean up PID file rm -f /tmp/sunshine-exec-run.pid echo "DONE"