About POSIX signals.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Sun, 16 May 2010 18:54:22 +0300
changeset 391 99698e5d7b63
parent 390 01fc5dc8e0db
child 392 9ec4e7e2f2af
About POSIX signals.
signal.rst
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/signal.rst	Sun May 16 18:54:22 2010 +0300
@@ -0,0 +1,279 @@
+-*- mode: outline; coding: utf-8 -*-
+
+* Send signal to process.
+
+  $ kill -s NAME PID
+
+Under C you can use kill(2) system call which will send the specified signal
+to the process, if permissions allow, or raise(3) library function, which
+sends the specified signal to the current process.
+
+* List of signals.
+
+  $ kill --list
+  $ kill -l      # short variant
+
+See
+
+  http://en.wikipedia.org/wiki/Unix_signals
+
+** SIGHUP 1.
+
+Hangup. Type: notification, can be handled.
+
+Sent when assigned to process terminal closed.
+
+nohup(1) utility used as a wrapper to start a program and make it immune to
+SIGHUP.
+
+The default action on POSIX-compliant systems is an abnormal termination.
+
+Demon used this signal as commant to reread config file.
+
+** SIGINT 2
+
+Interrupt. Ctrl-C. Type: control, can be handled.
+
+Signal sent to a process by its controlling terminal when a user wishes to
+interrupt the process.
+
+By default, this causes the process to terminate.
+
+** SIGQUIT 3.
+
+Quit. Ctrl-\. Type: control.
+
+Signal sent to a process by its controlling terminal when the user requests
+that the process dump core.
+
+By default, this causes the process to terminate and produce a memory core dump.
+
+** SIGILL 4.
+
+Illegal instruction. Type: exception, can not be handled.
+
+Signal sent to a process when it attempts to execute a malformed, unknown, or
+privileged instruction.
+
+** SIGTRAP 5.
+
+Trace trap. Type: debug, can be handled.
+
+Signal sent to a process when a condition arises that a debugger has requested
+to be informed of.
+
+By default this causes abnormal termination of the process.
+
+** SIGABRT 6.
+
+Type: control, can be handled.
+
+Signal sent to a computer program to tell it to abort, ie terminate.
+
+SIGABRT is sent by the process to itself when it calls the abort libc
+function. It is used when an assertion fails.
+
+By default this causes abnormal termination of the process.
+
+** SIGEMT 7.
+
+Emt instruction.
+
+** SIGFPE 8.
+
+Floating point exception. Type: exception, can be handled.
+
+Signal sent to a process when it performs an erroneous arithmetic operation
+(like division by zero).
+
+By default cause a core dump and a program exit.
+
+** SIGKILL 9.
+
+Kill. Type: control, can not be handled.
+
+Signal sent to a process to cause it to terminate immediately.
+
+Zombie processes cannot be killed since they are already dead and waiting for
+their parent processes to reap them.
+
+Processes that are in the blocked state will not die until they wake up again.
+
+** SIGBUS 10.
+
+Bus error. Type: exception, can not be handled.
+
+Signal sent to a process when it causes a bus error.
+
+By default this causes abnormal termination of the process.
+
+** SIGSEGV 11.
+
+Segmentation violation. Type: exception.
+
+Signal sent to a process when it makes an invalid memory reference, or
+segmentation fault.
+
+By default cause a core dump and a program exit.
+
+** SIGSYS 12.
+
+Bad argument to system call. Type: exception.
+
+By default this causes abnormal termination of the process.
+
+** SIGPIPE 13.
+
+Write on a pipe with no one to read it. Type: notification.
+
+Signal sent to a process when it attempts to write to a pipe without a process
+connected to the other end.
+
+This causes the process to terminate, which is convenient when constructing
+shell pipelines.
+
+** SIGALRM 14.
+
+Alarm clock. Type: notification.
+
+Signal sent to a process when a time limit has elapsed.
+
+By default this causes abnormal termination of the process.
+
+** SIGTERM 15.
+
+Software termination signal. Type: control.
+
+Signal sent to a process to request its termination.
+
+It causes the termination of a process, but unlike the SIGKILL signal, it can
+be caught and interpreted (or ignored) by the process.
+
+SIGTERM is akin to asking a process to terminate nicely, allowing cleanup and
+closure of files. For this reason, on many Unix systems during shutdown, init
+issues SIGTERM to all processes that are not essential to powering off, waits
+a few seconds, and then issues SIGKILL to forcibly terminate any such
+processes that remain.
+
+By default kill(1) send to process SIGTERM signal.
+
+** SIGURG 16.
+
+Urgent condition on IO channel. Type: notification.
+
+By default this signal ignored.
+
+** SIGSTOP 17.
+
+Signal sent to a process to stop it for later resumption. Type: control.
+
+SIGSTOP cannot be caught or ignored.
+
+Usually SIGSTOP and SIGCONT are used for job control in the Unix shell.
+
+** SIGTSTP 18.
+
+Stop signal from tty. Ctrl-Z. Type: control.
+
+By default, this causes the process to suspend execution.
+
+** SIGCONT 19.
+
+Continue a stopped process. Type: control.
+
+Signal sent to restart a process previously paused by the SIGSTOP or SIGTSTP
+signal.
+
+** SIGCHLD 20.
+
+To parent on child stop or exit. Type: notification.
+
+By default the signal is simply ignored. In C:
+
+  signal(SIGCHLD, SIG_IGN);
+
+Parent can invoke wait(1) otherwise children stay zombie.
+
+** SIGTTIN 21.
+
+Signal sent to a process when it attempts to read from the tty while in the
+background.
+
+Daemons do not have controlling terminals and should never receive this
+signal.
+
+By default this causes suspends of the process.
+
+** SIGTTOU 22.
+
+Signal sent to a process when it attempts to write to the tty while in the
+background.
+
+Daemons do not have controlling terminals and should never receive this
+signal.
+
+By default this causes suspends of the process.
+
+** SIGPOLL 23.
+
+System V name for SIGIO. Type: notification.
+
+Signal sent to a process when an asynchronous I/O event occurs.
+
+By default this causes abnormal termination of the process.
+
+** SIGXCPU 24.
+
+Exceeded CPU time limit. Type: notification.
+
+By default this causes abnormal termination of the process.
+
+** SIGXFSZ 25.
+
+Exceeded file size limit as determined by the ulimit system call and shell
+builtin. Type: notification.
+
+By default this causes abnormal termination of the process.
+
+** SIGVTALRM 26.
+
+Virtual time alarm. Type: notification.
+
+Signal sent to a process when a time limit has elapsed.
+
+By default this causes abnormal termination of the process.
+
+** SIGPROF 27.
+
+Profiling time alarm. Type: debug.
+
+Signal sent to a process when the profiling timer expires.
+
+By default this causes abnormal termination of the process.
+
+** SIGWINCH 28.
+
+Window changed. Type: notification.
+
+Signal sent to a process when its controlling terminal changes size.
+
+By default this signal ignored.
+
+** SIGLOST 29.
+
+Signal sent to process when a file lock is lost. This may occur, for example,
+when an NFS server reboots and forgets about a file lock.
+
+By default this causes abnormal termination of the process.
+
+** SIGUSR1 30.
+
+User defined signal 1. Type: user defined.
+
+By default this causes abnormal termination of the process.
+
+** SIGUSR2 31.
+
+User defined signal 2. Type: user defined.
+
+By default this causes abnormal termination of the process.