Posted to tcl by aspect at Fri Aug 17 13:03:17 GMT 2012view raw

  1. set signals {ALRM HUP INT KILL PIPE POLL PROF TERM USR1 USR2 VTALRM STKFLT PWR WINCH CHLD URG TSTP TTIN TTOU STOP CONT ABRT FPE ILL QUIT SEGV TRAP SYS EMT BUS XCPU XFSZ}
  2.  
  3. package require Tclx
  4.  
  5. set log [open signal_log.txt w]
  6. puts $::log "Starting ..."
  7. flush $::log
  8.  
  9. proc signal_handler {args} {
  10. puts "Got signal: $args"
  11. puts $::log "Got signal: $args"
  12. flush $::log
  13. }
  14.  
  15. foreach signal $signals {
  16. if {[catch {
  17. signal trap $signal [list signal_handler $signal]
  18. }]} {
  19. puts "Cannot trap $signal"
  20. }
  21. }
  22.  
  23. while {![eof stdin]} {
  24. catch {puts [gets stdin]}
  25. }
  26. puts "eof?"
  27.