#!/bin/bash
#
# BRUNIE-Prozesse beenden
#
# Angepasst fr:
#   - CentOS 10
#   - GT.M 7.1
#   - systemd
#

###############################################################################
# Grundeinstellungen
###############################################################################

GTM_DIR="/usr/gtm"
BRUNIE_USER="brunie"

###############################################################################
# Benutzer prfen
###############################################################################

if [ "$(id -un)" != "${BRUNIE_USER}" ]; then
    echo
    echo "   Nur unter Benutzer '${BRUNIE_USER}' zugelassen!"
    echo
    exit 1
fi

###############################################################################
# Prozesse suchen
###############################################################################

echo "   Stopping BRUNIE processes:"

PIDS=$(pgrep -u "${BRUNIE_USER}" -x mumps || true)

###############################################################################
# Keine MUMPS-Prozesse vorhanden
###############################################################################

if [ -z "${PIDS}" ]; then
    echo "   - Keine laufenden GT.M-Prozesse gefunden."
    exit 0
fi

###############################################################################
# Warten
###############################################################################

echo -n "   - Waiting."

sleep 1

echo -n "."

###############################################################################
# GT.M-Prozesse beenden
###############################################################################

for PID in ${PIDS}
do
    echo
    echo "   - Stoppe GT.M-Prozess ${PID}"

    kill -TERM "${PID}" >/dev/null 2>&1 || true
done

###############################################################################
# Kurz warten
###############################################################################

sleep 1

echo -n "."

###############################################################################
# Prfen, ob noch Prozesse laufen
###############################################################################

REMAINING=$(pgrep -u "${BRUNIE_USER}" -x mumps || true)

if [ -n "${REMAINING}" ]; then

    echo
    echo "   - Einige GT.M-Prozesse laufen noch."

    for PID in ${REMAINING}
    do
        echo "   - Beende GT.M-Prozess ${PID} zwangsweise."
        kill -KILL "${PID}" >/dev/null 2>&1 || true
    done

    sleep 1
fi

echo
echo "   Done."

exit 0
