#!/bin/bash LOCK_DIR="/run/lock" # Standard für systemweite Locks if [[ ! -w "$LOCK_DIR" ]]; then LOCK_DIR="/tmp" # Fallback für benutzerspezifische Locks fi # Funktion zur Erstellung des Lock-Dateinamens get_lock_file() { local suffix="$1" if [[ -n "$suffix" ]]; then echo "$LOCK_DIR/$(basename "$0")_$suffix.lock" else echo "$LOCK_DIR/$(basename "$0").lock" fi } create_lock() { local suffix="$1" local lock_file lock_file=$(get_lock_file "$suffix") if [[ -e "$lock_file" ]]; then log "Ein anderer Prozess läuft bereits. Lock-File gefunden: $lock_file" exit 1 fi touch "$lock_file" log "Lock-File erstellt: $lock_file" } remove_lock() { local suffix="$1" local lock_file lock_file=$(get_lock_file "$suffix") if [[ -e "$lock_file" ]]; then rm -f "$lock_file" log "Lock-File entfernt: $lock_file" fi } trap_remove_lock() { log "Signal empfangen. Lock-File wird entfernt." remove_lock exit 1 }