Penguin

A signal is basically a message sent from one process to another, indicating a change of state.

Different versions of Unix use different names and/or numbers for some of the lesser used signals. See the signal(7) man-page. You can find the signals and numbers used in the POSIX standard, in /usr/include/bits/signum.h on a Linux system, or by invoking kill -l.

  1. SIGHUP
  2. SIGINT
  3. SIGQUIT
  4. SIGILL
  5. SIGTRAP
  6. SIGABRT (aka SIGIOT)
  7. SIGBUS
  8. SIGFPE
  9. SIGKILL
  10. SIGUSR1
  11. SIGSEGV
  12. SIGUSR2
  13. SIGPIPE
  14. SIGALRM
  15. SIGTERM
  16. SIGSTKFLT
  17. SIGCHLD
  18. SIGCONT
  19. SIGSTOP
  20. SIGTSTP
  21. SIGTTIN
  22. SIGTTOU
  23. SIGURG
  24. SIGXCPU
  25. SIGXFSZ
  26. SIGVTALRM
  27. SIGPROF
  28. SIGWINCH
  29. SIGIO
  30. SIGPWR
  31. SIGSYS

Hotkeys for some of the above symbols.

These hotkeys can be found by typing:

  • stty -a

intr = ^C; quit = ^\; susp = ^Z

intr = [SIGINT]
quit = [SIGQUIT]
susp = [SIGSTOP]

Some people have a misconception that CTRL-S and CTRL-Q send a SIGSTOP and SIGCONT signal respectively.

This is not the case!

CTRL-S and CTRL-Q are used to control the flow of output to the terminal. CTRL-S tells the system not to send any more data to the screen until a CTRL-Q is pressed. You can use these to control fast scrolling output.

Here are a couple of pages that show how to code for signals:
http://users.actcom.co.il/choo/lupg/tutorials/signals/signals-programming.html
http://www.gnu.org/software/libc/manual/html_node/Signal-Handling.html