set -u |
# Variablen-Deklaration erforderlich (sehr hilfreich beim coden; daher nie vergessen) |
pid=${$} |
# PID der Shell, in der das Skript ausgeführt wird ohne führende Nullen |
PID=$(printf '%05d' ${$}) |
# PID der Shell, in der das Skript ausgeführt wird mit führenden Nullen |
PFAD=${0%/*} |
# Verzeichnis, indem das Shellskript liegt |
PROG=${0##*/} |
# Name des Shellskriptes |
trap '' 1 2
trap 'SIGUSR1' 10
trap 'SCHLUSS' 15 |
# Ignoriere SIGHUP und SIGINT (STRG-C) (da sonst ein Verlassen der Shell zum Abbruch führt)
# bei Auftreten des Signals SIGUSR1 (10) die Funktion "SIGUSR1" ausführen
# bei Auftreten des Signals SIGTERM (15) die Funktion "SCHLUSS" ausführen (zum aufräumen) |
dpid=$(pgrep -o ${PROG} | grep -v ${pid})
[[ ${dpid} != "" ]] && SCHLUSS |
# weitere Instanzen dieses Skriptes unterbinden (Funktion "INSTANZ" aufrufen; diese protokolliert
# den Aufruf der doppelten Instanz und beendet dieses Skript mit exit 88) |
grep ramfs < /proc/mounts > /dev/null
RC=${?} |
# Überprüfen, ob RAMDISK gemountet ist (0=gemountet)
# Rückgabewert in Variable ${RC} übergeben |
xms=$(date +"%F_%T.%3N")
xdt=${xms:0:16} |
# in Variable ${xms} den aktuellen Zeitstempel mit Datum+Uhrzeit+Millisekunden ablegen (in einer Funktion; für Logfiles)
# in Variable ${xdt} Datum+Uhrzeit ohne Millisekunden separieren (spart Rechenzeit für externes Kommando) |
Lesezeichen