#!/usr/bin/env bash # Install the lakehouse-auditor + lakehouse-context7-bridge systemd units. # Idempotent: re-running just reloads + restarts. # # Usage (as root): # bash ops/systemd/install.sh # # What it does: # 1. Copies *.service to /etc/systemd/system/ # 2. systemctl daemon-reload # 3. systemctl enable --now both services # 4. Prints post-install status set -euo pipefail UNIT_DIR="$(dirname "$(readlink -f "$0")")" TARGET_DIR=/etc/systemd/system UNITS=( lakehouse-auditor.service lakehouse-context7-bridge.service ) if [[ $EUID -ne 0 ]]; then echo "install.sh: must run as root (writes to $TARGET_DIR)" >&2 exit 1 fi for unit in "${UNITS[@]}"; do src="$UNIT_DIR/$unit" dst="$TARGET_DIR/$unit" if [[ ! -f "$src" ]]; then echo "install.sh: missing source $src" >&2 exit 1 fi echo "→ copy $unit" install -m 0644 "$src" "$dst" done echo "→ systemctl daemon-reload" systemctl daemon-reload for unit in "${UNITS[@]}"; do echo "→ enable + (re)start $unit" systemctl enable "$unit" >/dev/null systemctl restart "$unit" done echo "" echo "─── post-install status ───" for unit in "${UNITS[@]}"; do active=$(systemctl is-active "$unit" 2>/dev/null || true) enabled=$(systemctl is-enabled "$unit" 2>/dev/null || true) printf " %-40s active=%s enabled=%s\n" "$unit" "$active" "$enabled" done echo "" echo "Live logs: journalctl -u lakehouse-auditor.service -f" echo "Pause: touch /home/profit/lakehouse/auditor.paused" echo "Resume: rm /home/profit/lakehouse/auditor.paused"