signal.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Sun, 03 Jan 2021 23:37:00 +0200
changeset 2492 bd3d45148652
parent 2384 39bedf1e6b4e
permissions -rw-r--r--
Fixed example.

.. -*- coding: utf-8; -*-

================
 Process signal
================
.. contents::
   :local:

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

* http://en.wikipedia.org/wiki/Unix_signals

Signal descriptions
===================

SIGHUP 1
--------

Hangup. Type: notification, can be handled.

Signal is sent when the assigned process terminal has been 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 should interpret  this signal as a command to reread config file.

SIGINT
------

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.

Java dump thread traces to stdout.

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 a 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 suspending 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 suspending 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.