• Main Menu
  • Unix Signals


    A signal is a message that can be sent to a running process.

    Programs, users, or administrators can initiate signals.

    For example, the proper method of telling the Internet Daemon (inetd) to re-read its configuration file is to send it a SIGHUP signal.

    For example, if the current process ID (PID) of inetd is 4140, type:

    kill -SIGHUP 4140

    Another common use of signals is to stop a running process. To stop the inetd process completely, use this command:

    kill 4140

    By default, the kill command sends the SIGTERM signal. If SIGTERM fails, escalate to using the SIGKILL signal to stop the process:

    kill -9 4140

    Because SIGKILL cannot be handled, stopping a process with SIGKILL is generally considered a bad idea. Using SIGKILL prevents a process from cleaning up after itself and exiting gracefully.

    Handling Signals

    Each Unix signal has a default set of effects on a Unix program. Programmers can code their applications to respond in customized ways to most signals. These custom code pieces are called signal handlers.

    A signal handler is unable to redefine two signals. SIGKILL always stops a process and SIGSTOP always moves a process from the foreground to the background. A signal handler cannot “catch” these two signals.

    FreeBSD Signals

    Signal Name Signal Number Signal Description
    SIGHUP 1 Terminal line hangup
    SIGINT 2 Interrupt program
    SIGQUIT 3 Quit program
    SIGILL 4 Illegal instruction
    SIGTRAP 5 Trace trap
    SIGABRT 6 Abort
    SIGEMT 7 Emulate instruction executed
    SIGFPE 8 Floating-point exception
    SIGKILL 9 Kill program
    SIGBUS 10 Bus error
    SIGSEGV 11 Segmentation violation
    SIGSYS 12 Bad argument to system call
    SIGPIPE 13 Write on a pipe with no one to read it
    SIGALRM 14 Real-time timer expired
    SIGTERM 15 Software termination signal
    SIGURG 16 Urgent condition on I/O channel
    SIGSTOP 17 Stop signal not from terminal
    SIGTSTP 18 Stop signal from terminal
    SIGCONT 19 A stopped process is being continued
    SIGCHLD 20 Notification to parent on child stop or exit
    SIGTTIN 21 Read on terminal by background process
    SIGTTOU 22 Write to terminal by background process
    SIGIO 23 I/O possible on a descriptor
    SIGXCPU 24 CPU time limit exceeded
    SIGXFSZ 25 File-size limit exceeded
    SIGVTALRM 26 Virtual timer expired
    SIGPROF 27 Profiling timer expired
    SIGWINCH 28 Window size changed
    SIGINFO 29 Information request
    SIGUSR1 30 User-defined signal 1
    SIGUSR2 31 User-defined signal 2
    SIGTHR 32 Thread interrupt

    Solaris Signals

    Signal Name Signal Number Signal Description
    SIGHUP 1 Hangs up
    SIGINT 2 Interrupts
    SIGQUIT 3 Quits
    SIGILL 4 Illegal instruction
    SIGTRAP 5 Trace trap
    SIGABRT 6 Used by abort
    SIGEMT 7 EMT instruction
    SIGFPE 8 Floating-point exception
    SIGKILL 9 Kill (cannot be caught or ignored)
    SIGBUS 10 Bus error
    SIGSEGV 11 Segmentation violation
    SIGSYS 12 Bad argument to system call
    SIGPIPE 13 Writes on a pipe with no one to read it
    SIGALRM 14 Alarm clock
    SIGTERM 15 Software termination
    SIGUSR1 16 User-defined signal 1
    SIGUSR2 17 User-defined signal 2
    SIGCHLD 18 Child status change alias (POSIX)
    SIGPWR 19 Power-fail restart
    SIGWINCH 20 Window size change
    SIGURG 21 Urgent socket condition
    SIGPOLL /SIGIO 22 Pollable event occurred or Socket I/O possible
    SIGSTOP 23 Stop (cannot be caught or ignored)
    SIGTSTP 24 User stop requested from TTY
    SIGCONT 25 Stopped process has been continued
    SIGTTIN 26 Background TTY read attempted
    SIGTTOU 27 Background TTY write attempted
    SIGVTALRM 28 Virtual timer expired
    SIGPROF 29 Profiling timer expired
    SIGXCPU 30 Exceeded CPU limit
    SIGXFSZ 31 Exceeded file size limit
    SIGWAITING 32 Process’ LWPs are blocked
    SIGLWP 33 Special signal used by thread library
    SIGFREEZE 34 Special signal used by CPR
    SIGTHAW 35 Special signal used by CPR
    SIGCANCEL 36 Thread cancellation signal used by libthread
    SIGLOST 37 Resource lost
    SIGRTMIN 38 Highest priority real-time signal
    SIGRTMAX 45 Lowest priority real-time signal

    Got Something To Say:

    Your email address will not be published. Required fields are marked *

    One comment
    1. eric

      25 March, 2012 at 8:35 pm

      this was very helpful. finally, information when you ask for it with a simple search

      Reply
    Unix
    177 queries in 0.511 seconds.