|
|
@@ -88,16 +88,24 @@ fi
|
|
|
|
|
|
cd "$SCRIPT_DIR"
|
|
|
|
|
|
+# Resolve the harness PID (grandparent of this script).
|
|
|
+# $PPID is the ephemeral shell the harness spawned to run us — it dies
|
|
|
+# when this script exits. The harness itself is $PPID's parent.
|
|
|
+OWNER_PID="$(ps -o ppid= -p "$PPID" 2>/dev/null | tr -d ' ')"
|
|
|
+if [[ -z "$OWNER_PID" || "$OWNER_PID" == "1" ]]; then
|
|
|
+ OWNER_PID="$PPID"
|
|
|
+fi
|
|
|
+
|
|
|
# Foreground mode for environments that reap detached/background processes.
|
|
|
if [[ "$FOREGROUND" == "true" ]]; then
|
|
|
echo "$$" > "$PID_FILE"
|
|
|
- env BRAINSTORM_DIR="$SCREEN_DIR" BRAINSTORM_HOST="$BIND_HOST" BRAINSTORM_URL_HOST="$URL_HOST" BRAINSTORM_OWNER_PID="$PPID" node server.js
|
|
|
+ env BRAINSTORM_DIR="$SCREEN_DIR" BRAINSTORM_HOST="$BIND_HOST" BRAINSTORM_URL_HOST="$URL_HOST" BRAINSTORM_OWNER_PID="$OWNER_PID" node server.js
|
|
|
exit $?
|
|
|
fi
|
|
|
|
|
|
# Start server, capturing output to log file
|
|
|
# Use nohup to survive shell exit; disown to remove from job table
|
|
|
-nohup env BRAINSTORM_DIR="$SCREEN_DIR" BRAINSTORM_HOST="$BIND_HOST" BRAINSTORM_URL_HOST="$URL_HOST" BRAINSTORM_OWNER_PID="$PPID" node server.js > "$LOG_FILE" 2>&1 &
|
|
|
+nohup env BRAINSTORM_DIR="$SCREEN_DIR" BRAINSTORM_HOST="$BIND_HOST" BRAINSTORM_URL_HOST="$URL_HOST" BRAINSTORM_OWNER_PID="$OWNER_PID" node server.js > "$LOG_FILE" 2>&1 &
|
|
|
SERVER_PID=$!
|
|
|
disown "$SERVER_PID" 2>/dev/null
|
|
|
echo "$SERVER_PID" > "$PID_FILE"
|