diff options
Diffstat (limited to 'man7/signal.7')
-rw-r--r-- | man7/signal.7 | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/man7/signal.7 b/man7/signal.7 new file mode 100644 index 000000000..0418b6a29 --- /dev/null +++ b/man7/signal.7 @@ -0,0 +1,255 @@ +'\" t +.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) +.\" Copyright (c) 2002 by Michael Kerrisk (mtk16@ext.canterbury.ac.nz) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one. +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" License. +.\" Modified Sat Jul 24 17:34:08 1993 by Rik Faith (faith@cs.unc.edu) +.\" Modified Sun Jan 7 01:41:27 1996 by Andries Brouwer (aeb@cwi.nl) +.\" Modified Sun Apr 14 12:02:29 1996 by Andries Brouwer (aeb@cwi.nl) +.\" Modified Sat Nov 13 16:28:23 1999 by Andries Brouwer (aeb@cwi.nl) +.\" Modified 10 Apr 2002, by Michael Kerrisk (mtk16@ext.canterbury.ac.nz) +.\" Modified 7 Jun 2002, by Michael Kerrisk (mtk16@ext.canterbury.ac.nz) +.\" Added information on real-time signals +.\" Modified 13 Jun 2002, by Michael Kerrisk (mtk16@ext.canterbury.ac.nz) +.\" Noted that SIGSTKFLT is in fact unused +.\" +.TH SIGNAL 7 2002-06-13 "Linux 2.4.18" "Linux Programmer's Manual" +.SH NAME +signal \- list of available signals +.SH DESCRIPTION +Linux supports both POSIX reliable signals (hereinafter +"standard signals") and POSIX real-time signals. +.SS "Standard Signals" +Linux supports the standard signals listed below. Several signal numbers +are architecture dependent, as indicated in the "Value" column. +(Where three values are given, the first one is usually valid for +alpha and sparc, the middle one for i386, ppc and sh, and +the last one for mips. +A \- denotes that a signal is absent on the corresponding architecture.) + +The entries in the "Action" column of the table specify +the default action for the signal, as follows: +.IP Term +Default action is to terminate the process. +.IP Ign +Default action is to ignore the signal. +.IP Core +Default action is to terminate the process and dump core. +.IP Stop +Default action is to stop the process. +.PP +First the signals described in the original POSIX.1 standard. +.sp +.PP +.TS +l c c l +____ +lB c c l. +Signal Value Action Comment +SIGHUP \01 Term Hangup detected on controlling terminal + or death of controlling process +SIGINT \02 Term Interrupt from keyboard +SIGQUIT \03 Core Quit from keyboard +SIGILL \04 Core Illegal Instruction +SIGABRT \06 Core Abort signal from \fIabort\fP(3) +SIGFPE \08 Core Floating point exception +SIGKILL \09 Term Kill signal +SIGSEGV 11 Core Invalid memory reference +SIGPIPE 13 Term Broken pipe: write to pipe with no readers +SIGALRM 14 Term Timer signal from \fIalarm\fP(2) +SIGTERM 15 Term Termination signal +SIGUSR1 30,10,16 Term User\-defined signal 1 +SIGUSR2 31,12,17 Term User\-defined signal 2 +SIGCHLD 20,17,18 Ign Child stopped or terminated +SIGCONT 19,18,25 Continue if stopped +SIGSTOP 17,19,23 Stop Stop process +SIGTSTP 18,20,24 Stop Stop typed at tty +SIGTTIN 21,21,26 Stop tty input for background process +SIGTTOU 22,22,27 Stop tty output for background process +.TE + +The signals +.B SIGKILL +and +.B SIGSTOP +cannot be caught, blocked, or ignored. + +Next the signals not in the POSIX.1 standard but described in SUSv2 and +SUSv3 / POSIX 1003.1-2001. +.sp +.PP +.TS +l c c l +____ +lB c c l. +Signal Value Action Comment +SIGBUS 10,7,10 Core Bus error (bad memory access) +SIGPOLL Term Pollable event (Sys V). Synonym of SIGIO +SIGPROF 27,27,29 Term Profiling timer expired +SIGSYS 12,\-,12 Core Bad argument to routine (SVID) +SIGTRAP 5 Core Trace/breakpoint trap +SIGURG 16,23,21 Ign Urgent condition on socket (4.2 BSD) +SIGVTALRM 26,26,28 Term Virtual alarm clock (4.2 BSD) +SIGXCPU 24,24,30 Core CPU time limit exceeded (4.2 BSD) +SIGXFSZ 25,25,31 Core File size limit exceeded (4.2 BSD) +.TE + +Up to and including Linux 2.2, the default behaviour for +.BR SIGSYS ", " SIGXCPU ", " SIGXFSZ ", " +and (on architectures other than SPARC and MIPS) +.B SIGBUS +was to terminate the process (without a core dump). +(On some other Unices the default action for +.BR SIGXCPU " and " SIGXFSZ +is to terminate the process without a core dump.) +Linux 2.4 conforms to the POSIX 1003.1-2001 requirements for these signals, +terminating the process with a core dump. + +Next various other signals. +.sp +.PP +.TS +l c c l +____ +lB c c l. +Signal Value Action Comment +SIGIOT 6 Core IOT trap. A synonym for SIGABRT +SIGEMT 7,\-,7 Term +SIGSTKFLT \-,16,\- Term Stack fault on coprocessor (unused) +SIGIO 23,29,22 Term I/O now possible (4.2 BSD) +SIGCLD \-,\-,18 Ign A synonym for SIGCHLD +SIGPWR 29,30,19 Term Power failure (System V) +SIGINFO 29,\-,\- A synonym for SIGPWR +SIGLOST \-,\-,\- Term File lock lost +SIGWINCH 28,28,20 Ign Window resize signal (4.3 BSD, Sun) +SIGUNUSED \-,31,\- Term Unused signal (will be SIGSYS) +.TE + +(Signal 29 is +.B SIGINFO +/ +.B SIGPWR +on an alpha but +.B SIGLOST +on a sparc.) + +.B SIGEMT +is not specified in POSIX 1003.1-2001, but neverthless appears +on most other Unices, where its default action is typically to terminate +the process with a core dump. + +.B SIGPWR +(which is not specified in POSIX 1003.1-2001) is typically ignored +by default on those other Unices where it appears. + +.B SIGIO +(which is not specified in POSIX 1003.1-2001) is ignored by default +on several other Unices. +.SS "Real-time Signals" +Linux supports real-time signals as originally defined in the POSIX.4 +real-time extensions (and now included in POSIX 1003.1-2001). +Linux supports 32 real-time signals, numbered from 32 +.RB ( SIGRTMIN ) +to 63 +.RB ( SIGRTMAX ). +(Programs should always refer to real-time signals using notation +.BR SIGRTMIN +n, +since the range of real-time signal numbers varies across Unices.) +.PP +Unlike standard signals, real-time signals have no predefined meanings: +the entire set of real-time signals can be used for application-defined +purposes. +(Note, however, that the LinuxThreads implementation uses the first +three real-time signals.) +.PP +The default action for an unhandled real-time signal is to terminate the +receiving process. +.PP +Real-time signals are distinguished by the following: +.IP 1. 4 +Multiple instances of real-time signals can be queued. +By contrast, if multiple instances of a standard signal are delivered +while that signal is currently blocked, then only one instance is queued. +.IP 2. 4 +If the signal is sent using +.BR sigqueue (2), +an accompanying value (either an integer or a pointer) can be sent +with the signal. +If the receiving process establishes a handler for this signal using the +.B SA_SIGACTION +flag to +.BR sigaction (2) +then it can obtain this data via the +.I si_value +field of the +.I siginfo_t +structure passed as the second argument to the handler. +Furthermore, the +.I si_pid +and +.I si_uid +fields of this structure can be used to obtain the PID +and real user ID of the process sending the signal. +.IP 3. 4 +Real-time signals are delivered in a guaranteed order. +Multiple real-time signals of the same type are delivered in the order +they were sent. +If different real-time signals are sent to a process, they are delivered +starting with the lowest-numbered signal. +(I.e., low-numbered signals have highest priority.) +.PP +If both standard and real-time signals are pending for a process, +POSIX leaves it unspecified which is delivered first. +Linux, like many other implementations, gives priority +to standard signals in this case. +.PP +According to POSIX, an implementation should permit at least +_POSIX_SIGQUEUE_MAX (32) real-time signals to be queued to +a process. +However, rather than placing a per-process limit, Linux imposes +a system-wide limit on the number of queued real-time signals +for all processes. +This limit can be viewed and (with privilege) changed via the +.I /proc/sys/kernel/rtsig-max +file. +A related file, +.IR /proc/sys/kernel/rtsig-nr , +can be used to find out how many real-time signals are currently queued. +.SH "CONFORMING TO" +POSIX.1 +.SH BUGS +.B SIGIO +and +.B SIGLOST +have the same value. +The latter is commented out in the kernel source, but +the build process of some software still thinks that +signal 29 is +.BR SIGLOST . +.SH "SEE ALSO" +.BR kill (1), +.BR kill (2), +.BR setitimer (2), +.BR sigaction (2), +.BR signal (2), +.BR sigprocmask (2), +.BR sigqueue (2) |