(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"))