diff --git a/stop_finance_pod.sh b/stop_finance_pod.sh new file mode 100755 index 0000000..4b20d3e --- /dev/null +++ b/stop_finance_pod.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Fährt den finance_pod kontrolliert herunter: stoppt den systemd-User-Service +# (der den Pod verwaltet) und danach - falls noch vorhanden - den Pod selbst. +# Gedacht als expliziter Wartungsschritt, z.B. vor dem Editieren der .env +# (Reverse-Proxy-Umzug, siehe docs/reverse-proxy.md) und dem erneuten Ausführen +# von ./create_pod_finance.sh. +# +# KEIN Datenverlust: Postgres-/Grafana-Daten liegen im Bind-Mount +# ~/.local/share/finance_pod und bleiben beim Stoppen erhalten. Der Pod wird +# nur GESTOPPT, nicht entfernt - das Entfernen/Neuerstellen erledigt +# create_pod_finance.sh ohnehin bei jedem Lauf. + +set -e + +POD_NAME='finance_pod' +SERVICE="pod-${POD_NAME}.service" + +# 1. systemd-User-Service stoppen (er startet und verwaltet den Pod). Nur +# stoppen, nicht disablen - create_pod_finance.sh macht am Ende wieder +# `enable --now`. `stop` allein hält den Service bis dahin unten. +if systemctl --user list-units --type=service --all 2>/dev/null | \ + grep -q "$SERVICE"; then + echo "Stoppe systemd-User-Service $SERVICE ..." + systemctl --user stop "$SERVICE" || true +else + echo "Service $SERVICE ist nicht registriert - nichts zu stoppen." +fi + +# 2. Falls der Pod noch läuft (z.B. unmanaged außerhalb systemd gestartet), +# ebenfalls stoppen. --ignore: kein Fehler, wenn er nicht existiert. +if podman pod exists "$POD_NAME"; then + echo "Stoppe Pod $POD_NAME ..." + podman pod stop --ignore --time 15 "$POD_NAME" || true +else + echo "Pod $POD_NAME existiert nicht." +fi + +# 3. Status zur Kontrolle ausgeben. +echo +echo "--- Status nach dem Herunterfahren ---" +printf 'Service aktiv? ' +systemctl --user is-active "$SERVICE" || true +echo "Pod/Container:" +podman pod ps --filter "name=$POD_NAME" || true + +echo +echo "Fertig heruntergefahren. Nächste Schritte:" +echo " 1. .env editieren: \$EDITOR ~/.local/share/finance_pod/.env" +echo " (Reverse-Proxy: FB_GRAFANA_PUBLIC_URL + FB_SESSION_COOKIE_SECURE" +echo " single-quoted setzen - siehe docs/reverse-proxy.md)" +echo " 2. Neu ausrollen: ./create_pod_finance.sh"