#!/bin/sh
#
# Demonstration des Aufrufs von Signal-Handlern (Traps) bei synchronen und
# asynchronen Kommandos
#
# 24.2.2006

# Signal-Handler definieren
function handler()
{
  echo "$(date +'%H:%M:%S') Handler aktiv"
}

# Signal-Handler "handler()" mit Signal SIGUSR1 verbinden
trap handler SIGUSR1

# synchrones Kommando starten;
# Wir übergeben unsere Prozess-ID als Argument 1, so dass uns der Kind-Prozess
# sehr einfach ein Signal schicken kann.
echo "$(date +'%H:%M:%S') $0 startet synchron.sh"
./synchron.sh $$
echo "$(date +'%H:%M:%S') $0 synchron.sh fertig"

echo '----------------'

# asynchrones Kommando starten;
# Wir übergeben unsere Prozess-ID als Argument 1, so dass uns der Kind-Prozess
# sehr einfach ein Signal schicken kann.
echo "$(date +'%H:%M:%S') $0 startet asynchron.sh"
./asynchron.sh $$ &
# auf das asynchrone Kommando mit wait warten
wait
echo "$(date +'%H:%M:%S') $0 wait beendet mit Exit-Code $?"

