appropriate signal handling added by andyjpb on Mon Oct 14 18:34:08 2013

(define keep-going #t)

(define (shutdown #!optional signum)
 (printf "got signal ~A: shutting down...\n" signum)
 (set! keep-going? #f))

(define (handler)
  (set-signal-handler! signal/term shutdown)
  (set-signal-handler! signal/quit shutdown)
  (set-signal-handler! signal/hup  shutdown)
  (let loop
     ...do stuff...
     (if (keep-going? (loop)))
  (sleep 10)
  (prinf "bye!\n"))