Files
mailcat/bin/stop_mailcat.sh
2026-07-20 20:49:36 +02:00

42 lines
955 B
Bash
Executable File

#!/bin/sh
set -eu
PID_FILE="/share/homes/mailcat/mailcat/run/mailcat.pid"
RM="/bin/rm"
if [ ! -f "$PID_FILE" ]; then
echo "mailcat not running: no pid file"
exit 0
fi
pid=""
IFS= read -r pid < "$PID_FILE" || true
if [ -z "$pid" ]; then
"$RM" -f "$PID_FILE"
echo "mailcat not running: empty pid file removed"
exit 0
fi
if kill -0 "$pid" 2>/dev/null; then
kill "$pid"
timeout=20
while [ "$timeout" -gt 0 ] && kill -0 "$pid" 2>/dev/null; do
sleep 1
timeout=$((timeout - 1))
done
if kill -0 "$pid" 2>/dev/null; then
echo "mailcat still running after SIGTERM, sending SIGKILL: $pid"
kill -KILL "$pid" 2>/dev/null || true
timeout=5
while [ "$timeout" -gt 0 ] && kill -0 "$pid" 2>/dev/null; do
sleep 1
timeout=$((timeout - 1))
done
if kill -0 "$pid" 2>/dev/null; then
echo "mailcat still running after SIGKILL: $pid"
exit 1
fi
fi
fi
"$RM" -f "$PID_FILE"
echo "mailcat stopped"