#!/bin/sh
#
# von trap_and_bg.sh gerufenes Hintergrund-Skript
#
# 25.2.2006

# Signal-Handler
function sig_handler()
{
  echo "$(date) $0: Signal-Handler für Signal $1 gerufen"
  sleep 2
  echo "$(date) $0: wird beendet"
  exit 1
}

# Handler für die ersten n Signale installieren;
# Wir könnten uns auch gezielt auf SIGINT und SIGQUIT beschränken. Es stellt
# kein Problem dar, wenn wir trap für ein Signal rufen, das man nicht einfangen
# kann. Das wird stillschweigend ignoriert.
for sig in {1..64}
# bei Bash-Version kleiner 3:
#   for sig in $(seq 1 64)
do
  trap "sig_handler $sig" $sig
done

echo pid bg $$

while ((1))
do
  echo "$(date) $0: $((++i))"
  sleep 1
done

