Fixing Wkr Start / Stop

This commit is contained in:
John Haverlack 2026-02-04 20:40:39 -09:00
parent 8b00086e9f
commit 456ac1761b
3 changed files with 43 additions and 37 deletions

View File

@ -17,6 +17,14 @@ use_systemd() {
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SDL_HOME="$(cd "$SCRIPT_DIR/.." && pwd)" SDL_HOME="$(cd "$SCRIPT_DIR/.." && pwd)"
if use_systemd; then
# Systemd mode - let systemd handle it
echo "Starting SDL Manager (systemd)..."
systemctl --user start sdl-mgr
exit 0
fi
# Manual mode - continue with checks
NODE_BIN_DIR="${SDL_HOME}/nodejs/current/bin" NODE_BIN_DIR="${SDL_HOME}/nodejs/current/bin"
NODE_BIN="${NODE_BIN_DIR}/node" NODE_BIN="${NODE_BIN_DIR}/node"
NPM_BIN="${NODE_BIN_DIR}/npm" NPM_BIN="${NODE_BIN_DIR}/npm"
@ -35,7 +43,7 @@ done
if [[ -n "$SDL_MGR_PID" ]]; then if [[ -n "$SDL_MGR_PID" ]]; then
echo "ERROR: SDL Manager is already running with PID ${SDL_MGR_PID}" echo "ERROR: SDL Manager is already running with PID ${SDL_MGR_PID}"
echo " Stop it first: kill ${SDL_MGR_PID}" echo " Stop it first: ${SDL_HOME}/scripts/stop-sdl-mgr.sh"
exit 1 exit 1
fi fi
@ -54,14 +62,4 @@ fi
echo "Starting SDL Manager..." echo "Starting SDL Manager..."
echo " App Dir: ${SDL_MGR_APP_DIR}" echo " App Dir: ${SDL_MGR_APP_DIR}"
echo " Node: ${NODE_BIN}" echo " Node:
export PATH="${NODE_BIN_DIR}:${PATH}"
cd "${SDL_MGR_APP_DIR}"
if use_systemd; then
systemctl --user start sdl-mgr
else
# Manual background start logic
"${NPM_BIN}" start &
fi

View File

@ -31,6 +31,11 @@ else
exit 0 exit 0
fi fi
echo "SDL Manager is running with PID: ${SDL_MGR_PID}" # Get process uptime
PROCESS_START=$(ps -p "$SDL_MGR_PID" -o lstart= 2>/dev/null || echo "unknown")
echo "SDL Manager is running"
echo " PID: ${SDL_MGR_PID}"
echo " Started: ${PROCESS_START}"
exit 0 exit 0
fi fi

View File

@ -13,7 +13,15 @@ use_systemd() {
return 1 # Use manual scripts return 1 # Use manual scripts
} }
# Get sdl-mgr PID if use_systemd; then
# Systemd mode - let systemd handle it
echo "Stopping SDL Manager (systemd)..."
systemctl --user stop sdl-mgr --quiet 2>/dev/null || true
echo "SDL Manager stopped"
exit 0
fi
# Manual mode - find and kill process
SDL_MGR_PID="" SDL_MGR_PID=""
for pid in $(pgrep -f 'node' 2>/dev/null || true); do for pid in $(pgrep -f 'node' 2>/dev/null || true); do
cwd=$(readlink /proc/$pid/cwd 2>/dev/null || true) cwd=$(readlink /proc/$pid/cwd 2>/dev/null || true)
@ -30,32 +38,27 @@ fi
echo "Stopping SDL Manager (PID: ${SDL_MGR_PID})..." echo "Stopping SDL Manager (PID: ${SDL_MGR_PID})..."
if use_systemd; then # Send SIGTERM for graceful shutdown
systemctl --user stop sdl-mgr kill "$SDL_MGR_PID"
else
# Manual PID-based stop logic
# Send SIGTERM for graceful shutdown
kill "$SDL_MGR_PID"
# Wait up to 10 seconds for process to exit # Wait up to 10 seconds for process to exit
for i in {1..10}; do for i in {1..10}; do
if ! kill -0 "$SDL_MGR_PID" 2>/dev/null; then if ! kill -0 "$SDL_MGR_PID" 2>/dev/null; then
echo "SDL Manager stopped successfully" echo "SDL Manager stopped successfully"
exit 0 exit 0
fi fi
sleep 1 sleep 1
done done
# If still running after 10 seconds, force kill
if kill -0 "$SDL_MGR_PID" 2>/dev/null; then
echo "WARNING: Graceful shutdown failed, forcing kill..."
kill -9 "$SDL_MGR_PID"
sleep 1
# If still running after 10 seconds, force kill
if kill -0 "$SDL_MGR_PID" 2>/dev/null; then if kill -0 "$SDL_MGR_PID" 2>/dev/null; then
echo "WARNING: Graceful shutdown failed, forcing kill..." echo "ERROR: Failed to stop SDL Manager"
kill -9 "$SDL_MGR_PID" exit 1
sleep 1
if kill -0 "$SDL_MGR_PID" 2>/dev/null; then
echo "ERROR: Failed to stop SDL Manager"
exit 1
fi
fi fi
fi fi