From 2b7fc38ca2b791c67a2d6d5fcde5b9c56e558cfe Mon Sep 17 00:00:00 2001 From: John Haverlack Date: Tue, 3 Feb 2026 20:19:44 -0900 Subject: [PATCH] Non Systemd start stop scripts --- sdl-mgr/scripts/start-sdl-mgr.sh | 52 ++++++++++++++++++++++++++++++++ sdl-mgr/scripts/stop-sdl-mgr.sh | 46 ++++++++++++++++++++++++++++ sdl-wkr/scripts/start-sdl-wkr.sh | 51 +++++++++++++++++++++++++++++++ sdl-wkr/scripts/stop-sdl-wkr.sh | 46 ++++++++++++++++++++++++++++ 4 files changed, 195 insertions(+) diff --git a/sdl-mgr/scripts/start-sdl-mgr.sh b/sdl-mgr/scripts/start-sdl-mgr.sh index e69de29..6a076c3 100755 --- a/sdl-mgr/scripts/start-sdl-mgr.sh +++ b/sdl-mgr/scripts/start-sdl-mgr.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# start-sdl-mgr.sh - Script to start SDL Manager +set -euo pipefail + +# Get $SDL_HOME directory from SCRIPT PATH +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +SDL_HOME="$(cd "$SCRIPT_DIR/.." && pwd)" + +NODE_BIN_DIR="${SDL_HOME}/nodejs/current/bin" +NODE_BIN="${NODE_BIN_DIR}/node" +NPM_BIN="${NODE_BIN_DIR}/npm" + +SDL_MGR_APP_DIR="${SDL_HOME}/sdl-mgr/current/app" + +# Check that sdl-mgr is not already running +SDL_MGR_PID="" +for pid in $(pgrep -f 'node' 2>/dev/null || true); do + cwd=$(readlink /proc/$pid/cwd 2>/dev/null || true) + if [[ "$cwd" == *"sdl-mgr"* ]]; then + SDL_MGR_PID="$pid" + break + fi +done + +if [[ -n "$SDL_MGR_PID" ]]; then + echo "ERROR: SDL Manager is already running with PID ${SDL_MGR_PID}" + echo " Stop it first: kill ${SDL_MGR_PID}" + exit 1 +fi + +# Verify paths exist +if [[ ! -f "$NODE_BIN" ]]; then + echo "ERROR: Node.js not found at: $NODE_BIN" + echo " Run install-sdl.sh first" + exit 1 +fi + +if [[ ! -d "$SDL_MGR_APP_DIR" ]]; then + echo "ERROR: SDL Manager app not found at: $SDL_MGR_APP_DIR" + echo " Run install-sdl.sh first" + exit 1 +fi + +echo "Starting SDL Manager..." +echo " App Dir: ${SDL_MGR_APP_DIR}" +echo " Node: ${NODE_BIN}" + +export PATH="${NODE_BIN_DIR}:${PATH}" +cd "${SDL_MGR_APP_DIR}" + +# Start in foreground (use nohup or systemd for background) +exec "${NPM_BIN}" start \ No newline at end of file diff --git a/sdl-mgr/scripts/stop-sdl-mgr.sh b/sdl-mgr/scripts/stop-sdl-mgr.sh index e69de29..5249908 100755 --- a/sdl-mgr/scripts/stop-sdl-mgr.sh +++ b/sdl-mgr/scripts/stop-sdl-mgr.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# stop-sdl-mgr.sh - Script to stop SDL Manager +set -euo pipefail + +# Get sdl-mgr PID +SDL_MGR_PID="" +for pid in $(pgrep -f 'node' 2>/dev/null || true); do + cwd=$(readlink /proc/$pid/cwd 2>/dev/null || true) + if [[ "$cwd" == *"sdl-mgr"* ]]; then + SDL_MGR_PID="$pid" + break + fi +done + +if [[ -z "$SDL_MGR_PID" ]]; then + echo "SDL Manager is not running" + exit 0 +fi + +echo "Stopping SDL Manager (PID: ${SDL_MGR_PID})..." + +# Send SIGTERM for graceful shutdown +kill "$SDL_MGR_PID" + +# Wait up to 10 seconds for process to exit +for i in {1..10}; do + if ! kill -0 "$SDL_MGR_PID" 2>/dev/null; then + echo "SDL Manager stopped successfully" + exit 0 + fi + sleep 1 +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 kill -0 "$SDL_MGR_PID" 2>/dev/null; then + echo "ERROR: Failed to stop SDL Manager" + exit 1 + fi +fi + +echo "SDL Manager stopped" \ No newline at end of file diff --git a/sdl-wkr/scripts/start-sdl-wkr.sh b/sdl-wkr/scripts/start-sdl-wkr.sh index e69de29..0c7b676 100755 --- a/sdl-wkr/scripts/start-sdl-wkr.sh +++ b/sdl-wkr/scripts/start-sdl-wkr.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +# start-sdl-wkr.sh - Script to start SDL Worker +set -euo pipefail + +# Get $SDL_HOME directory from SCRIPT PATH +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +SDL_HOME="$(cd "$SCRIPT_DIR/.." && pwd)" + +NODE_BIN_DIR="${SDL_HOME}/nodejs/current/bin" +NODE_BIN="${NODE_BIN_DIR}/node" +NPM_BIN="${NODE_BIN_DIR}/npm" + +SDL_WKR_APP_DIR="${SDL_HOME}/sdl-wkr/current/app" + +# Check that sdl-wkr is not already running +SDL_WKR_PID="" +for pid in $(pgrep -f 'node' 2>/dev/null || true); do + cwd=$(readlink /proc/$pid/cwd 2>/dev/null || true) + if [[ "$cwd" == *"sdl-wkr"* ]]; then + SDL_WKR_PID="$pid" + break + fi +done + +if [[ -n "$SDL_WKR_PID" ]]; then + echo "ERROR: SDL Worker is already running with PID ${SDL_WKR_PID}" + echo " Stop it first: kill ${SDL_WKR_PID}" + exit 1 +fi + +# Verify paths exist +if [[ ! -f "$NODE_BIN" ]]; then + echo "ERROR: Node.js not found at: $NODE_BIN" + echo " Run install-sdl.sh first" + exit 1 +fi + +if [[ ! -d "$SDL_WKR_APP_DIR" ]]; then + echo "ERROR: SDL Worker app not found at: $SDL_WKR_APP_DIR" + exit 1 +fi + +echo "Starting SDL Worker..." +echo " App Dir: ${SDL_WKR_APP_DIR}" +echo " Node: ${NODE_BIN}" + +export PATH="${NODE_BIN_DIR}:${PATH}" +cd "${SDL_WKR_APP_DIR}" + +# Start in foreground (use nohup or systemd for background) +exec "${NPM_BIN}" start \ No newline at end of file diff --git a/sdl-wkr/scripts/stop-sdl-wkr.sh b/sdl-wkr/scripts/stop-sdl-wkr.sh index e69de29..1d94f75 100755 --- a/sdl-wkr/scripts/stop-sdl-wkr.sh +++ b/sdl-wkr/scripts/stop-sdl-wkr.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# stop-sdl-wkr.sh - Script to stop SDL Worker +set -euo pipefail + +# Get sdl-wkr PID +SDL_WKR_PID="" +for pid in $(pgrep -f 'node' 2>/dev/null || true); do + cwd=$(readlink /proc/$pid/cwd 2>/dev/null || true) + if [[ "$cwd" == *"sdl-wkr"* ]]; then + SDL_WKR_PID="$pid" + break + fi +done + +if [[ -z "$SDL_WKR_PID" ]]; then + echo "SDL Worker is not running" + exit 0 +fi + +echo "Stopping SDL Worker (PID: ${SDL_WKR_PID})..." + +# Send SIGTERM for graceful shutdown +kill "$SDL_WKR_PID" + +# Wait up to 10 seconds for process to exit +for i in {1..10}; do + if ! kill -0 "$SDL_WKR_PID" 2>/dev/null; then + echo "SDL Worker stopped successfully" + exit 0 + fi + sleep 1 +done + +# If still running after 10 seconds, force kill +if kill -0 "$SDL_WKR_PID" 2>/dev/null; then + echo "WARNING: Graceful shutdown failed, forcing kill..." + kill -9 "$SDL_WKR_PID" + sleep 1 + + if kill -0 "$SDL_WKR_PID" 2>/dev/null; then + echo "ERROR: Failed to stop SDL Worker" + exit 1 + fi +fi + +echo "SDL Worker stopped" \ No newline at end of file