 |
Index for Section 4 |
|
 |
Alphabetical listing for S |
|
 |
Bottom of page |
|
signal(4)
NAME
signal, signal.h - Contains definitions and variables used by signal
functions
DESCRIPTION
The /usr/include/signal.h file defines the signals described in the
following table.
__________________________________________________________________
Signal Number Meaning
__________________________________________________________________
SIGHUP 1 Hangup.
SIGINT 2 Interrupt.
SIGQUIT 3 Quit. (1)
SIGILL 4
Invalid instruction (not reset when caught).
(1)
SIGTRAP 5 Trace trap (not reset when caught). (1)
SIGABRT 6
End process (see the abort() function). (1)
SIGEMT 7 EMT instruction.
SIGFPE 8
Arithmetic exception, integer divide by 0
(zero), or floating-point exception. (1)
SIGKILL 9 Kill (cannot be caught or ignored).
SIGBUS 10 Specification exception. (1)
SIGSEGV 11 Segmentation violation. (1)
SIGSYS 12 Invalid parameter to system call. (1)
SIGPIPE 13
Write on a pipe when there is no process to
read it.
SIGALRM 14 Alarm clock.
SIGTERM 15 Software termination signal.
SIGURG 16 Urgent condition on I/O channel. (2)
SIGSTOP 17 Stop (cannot be caught or ignored). (3)
SIGTSTP 18 Interactive stop. (3)
SIGCONT 19 Continue if stopped. (4)
SIGCHLD 20 To parent on child stop or exit. (2)
SIGTTIN 21
Background read attempted from control
terminal. (3)
SIGTTOU 22
Background write attempted from control
terminal. (3)
SIGIO 23 Input/Output possible or completed. (2)
SIGXCPU 24
CPU time limit exceeded (see the setrlimit()
function).
SIGXFSZ 25
File size limit exceeded (see the setrlimit()
function).
SIGVTALRM 26
Virtual time alarm (see the setitimer()
function).
SIGPROF 27
Profiling time alarm (see the setitimer()
function).
SIGWINCH 28 Window size change. (2)
SIGINFO 29 Information request. (2)
SIGUSR1 30 User-defined signal 1.
SIGUSR2 31 User-defined signal 2.
__________________________________________________________________
Notes to table:
(1) Default action includes creating a core dump file.
(2) Default action is to ignore these signals.
(3) Default action is to stop the process receiving these signals.
(4) Default action is to restart or continue the process receiving
these signals.
The three types of actions that can be associated with a signal: SIG_DFL,
SIG_IGN, or a pointer to a function are described as follows:
SIG_DFL
Default action: signal-specific default action.
Except for those signal numbers marked with a (2), (3), or (4), the
default action for a signal is to end the receiving process with all of
the consequences described in the _exit() system call. In addition, a
memory image file is created in the current directory of the receiving
process if the signal parameter is one for which a superscript 1
appears in the preceding list and the following conditions are met:
· The effective user ID and the real user ID of the receiving
process are equal.
· An ordinary file named core exists in the current directory and is
writable, or it can be created. If the file must be created, it
will have the following properties:
-- The access permission code 0600, modified by the file
creation mask (see the umask() function).
-- A file owner ID that is the same as the effective user ID of
the receiving process.
-- A file group ID that is inherited from the containing
directory (if the file system is mounted grpid) or from the
owning process (if the file system is mounted nogrpid).
For signal numbers marked with a superscript 4, the default action is
to restart the receiving process if it is stopped, or to continue
execution of the receiving process.
For signal numbers marked with a superscript 3, the default action is
to stop the execution of the receiving process temporarily. When a
process stops, a SIGCHLD signal is sent to its parent process, unless
the parent process has set the SA_NOCLDSTOP bit. While a process is
stopped, any additional signals that are sent to the process are not
delivered until the process is continued. An exception to this is
SIGKILL, which always terminates the receiving process. Another
exception is SIGCONT, which always causes the receiving process to
restart or continue running. A process whose parent has ended shall be
sent a SIGKILL signal if the SIGTSTP, SIGTTIN, or SIGTTOU signals are
generated for that process.
For signal numbers marked with a superscript 2, the default action is
to ignore the signal. In this case, delivery of the signal has no
effect on the receiving process.
If a signal action is set to SIG_DFL while the signal is pending, the
signal remains pending.
SIG_IGN
Ignore signal.
Delivery of the signal has no effect on the receiving process. If a
signal action is set to SIG_IGN while the signal is pending, the
pending signal is discarded.
Note that the SIGKILL and SIGSTOP signals cannot be ignored.
pointer to a function
Catch signal.
Upon delivery of the signal, the receiving process is to run the
signal-catching function specified by the pointer to function. The
signal-handler subroutine can be declared as follows:
void handler(signal) int signal;
The signal parameter is the signal number.
A new signal mask is calculated and installed for the duration of the
signal-catching function (or until sigprocmask() or sigsuspend() system
calls are made). This mask is formed by taking the union of the process
signal mask, the mask associated with the action for the signal being
delivered, and a mask corresponding to the signal being delivered. The mask
associated with the signal-catching function is not allowed to block those
signals that cannot be ignored. This is enforced by the kernel without
causing an error to be indicated. If and when the signal-catching function
returns, the original signal mask is restored (modified by any
sigprocmask() calls that were made since the signal-catching function was
called) and the receiving process resumes execution at the point it was
interrupted.
The signal-catching function can cause the process to resume in a different
context by calling the longjmp() subroutine. When the longjmp() subroutine
is called, the process leaves the signal stack, if it is currently on it,
and restores the process signal mask to the state when the corresponding
setjmp() call was made.
Once an action is installed for a specific signal, it remains installed
until another action is explicitly requested (by another call to the
sigaction() system call), or until one of the exec system calls is called.
If a signal action is set to a pointer to a function while the signal is
pending, the signal remains pending.
When signal-catching functions are invoked asynchronously with process
execution, the behavior of some of the functions defined by this standard
is unspecified if they are called from a signal-catching function. The
following set of functions are reentrant with respect to signals (that is,
applications can invoke them, without restriction, from signal-catching
functions):
_exit() access() alarm() chdir()
chmod() chown() close() creat()
dup2() dup() exec() fcntl()
fork() fstat() getegid() geteuid()
getgid() getgroups() getpgrp() getpid()
getppid() getuid() kill() link()
lseek() mkdir() mkfifo() open()
pause() pipe() read() rename()
rmdir() sem_post() setgid() setpgrp()
setuid() sigaction() sigaddset() sigdelset()
sigfillset() siginitset() sigismember() signal()
sigpending() sigprocmask() sigsuspend() sleep()
statx() tcdrain() tcflow() tcflush()
tcgetattr() tcgetprgp() tcsendbreak() tcsetattr()
tcsetpgrp() time() times() umask()
uname() unlink() ustat() utime()
wait2() wait() write()
All other system calls should not be called from signal-catching functions
since their behavior is undefined.
SEE ALSO
Functions: sigaction(2), sigblock(2), sigemptyset(3), siginterrupt(3),
siglongjmp(3), sigpause(3), sigpending(2), sigprocmask(2), sigreturn(2),
sigset(3), sigsetjmp(3), sigstack(2), sigsuspend(2), sigvec(2), sigwait(3)
 |
Index for Section 4 |
|
 |
Alphabetical listing for S |
|
 |
Top of page |
|