Back to module index

Go to module by name

_signal

This module provides mechanisms to use signal handlers in Python.

Functions:

alarm() -- cause SIGALRM after a specified time [Unix only]
setitimer() -- cause a signal (described below) after a specified
               float time and the timer may restart then [Unix only]
getitimer() -- get current value of timer [Unix only]
signal() -- set the action for a given signal
getsignal() -- get the signal action for a given signal
pause() -- wait until a signal arrives [Unix only]
default_int_handler() -- default SIGINT handler

signal constants:
SIG_DFL -- used to refer to the system default handler
SIG_IGN -- used to ignore the signal
NSIG -- number of defined signals
SIGINT, SIGTERM, etc. -- signal numbers

itimer constants:
ITIMER_REAL -- decrements in real time, and delivers SIGALRM upon
               expiration
ITIMER_VIRTUAL -- decrements only when the process is executing,
               and delivers SIGVTALRM upon expiration
ITIMER_PROF -- decrements both when the process is executing and
               when the system is executing on behalf of the process.
               Coupled with ITIMER_VIRTUAL, this timer is usually
               used to profile the time spent by the application
               in user and kernel space. SIGPROF is delivered upon
               expiration.



A signal handler function is called with two arguments:
the first is the signal number, the second is the interrupted stack frame.

Classes

itimer_error

with_traceback(...)

  Exception.with_traceback(tb) --
      set self.__traceback__ to tb and return self.
args = <attribute 'args' of 'BaseException' objects>
characters_written = <attribute 'characters_written' of 'OSError' objects>
errno = <member 'errno' of 'OSError' objects>
  POSIX exception code
filename = <member 'filename' of 'OSError' objects>
  exception filename
filename2 = <member 'filename2' of 'OSError' objects>
  second exception filename
strerror = <member 'strerror' of 'OSError' objects>
  exception strerror

struct_siginfo

struct_siginfo: Result from sigwaitinfo or sigtimedwait.

This object may be accessed either as a tuple of
(si_signo, si_code, si_errno, si_pid, si_uid, si_status, si_band),
or via the attributes si_signo, si_code, and so on.
count(self, value, /)

  Return number of occurrences of value.
index(self, value, start=0, stop=9223372036854775807, /)

  Return first index of value.

  Raises ValueError if the value is not present.
n_fields = 7
n_sequence_fields = 7
n_unnamed_fields = 0
si_band = <member 'si_band' of 'signal.struct_siginfo' objects>
  band event for SIGPOLL
si_code = <member 'si_code' of 'signal.struct_siginfo' objects>
  signal code
si_errno = <member 'si_errno' of 'signal.struct_siginfo' objects>
  errno associated with this signal
si_pid = <member 'si_pid' of 'signal.struct_siginfo' objects>
  sending process ID
si_signo = <member 'si_signo' of 'signal.struct_siginfo' objects>
  signal number
si_status = <member 'si_status' of 'signal.struct_siginfo' objects>
  exit value or signal
si_uid = <member 'si_uid' of 'signal.struct_siginfo' objects>
  real user ID of sending process

Functions

alarm

alarm(seconds, /)

  Arrange for SIGALRM to arrive after the given number of seconds.

default_int_handler

default_int_handler(signalnum, frame, /)

  The default handler for SIGINT installed by Python.

  It raises KeyboardInterrupt.

getitimer

getitimer(which, /)

  Returns current value of given itimer.

getsignal

getsignal(signalnum, /)

  Return the current action for the given signal.

  The return value can be:
    SIG_IGN -- if the signal is being ignored
    SIG_DFL -- if the default action for the signal is in effect
    None    -- if an unknown handler is in effect
    anything else -- the callable Python object used as a handler

pause

pause()

  Wait until a signal arrives.

pidfd_send_signal

pidfd_send_signal(pidfd, signalnum, siginfo=None, flags=0, /)

  Send a signal to a process referred to by a pid file descriptor.

pthread_kill

pthread_kill(thread_id, signalnum, /)

  Send a signal to a thread.

pthread_sigmask

pthread_sigmask(how, mask, /)

  Fetch and/or change the signal mask of the calling thread.

raise_signal

raise_signal(signalnum, /)

  Send a signal to the executing process.

set_wakeup_fd

set_wakeup_fd(...)

  set_wakeup_fd(fd, *, warn_on_full_buffer=True) -> fd

  Sets the fd to be written to (with the signal number) when a signal
  comes in.  A library can use this to wakeup select or poll.
  The previous fd or -1 is returned.

  The fd must be non-blocking.

setitimer

setitimer(which, seconds, interval=0.0, /)

  Sets given itimer (one of ITIMER_REAL, ITIMER_VIRTUAL or ITIMER_PROF).

  The timer will fire after value seconds and after that every interval seconds.
  The itimer can be cleared by setting seconds to zero.

  Returns old values as a tuple: (delay, interval).

siginterrupt

siginterrupt(signalnum, flag, /)

  Change system call restart behaviour.

  If flag is False, system calls will be restarted when interrupted by
  signal sig, else system calls will be interrupted.

signal

signal(signalnum, handler, /)

  Set the action for the given signal.

  The action can be SIG_DFL, SIG_IGN, or a callable Python object.
  The previous action is returned.  See getsignal() for possible return values.

  *** IMPORTANT NOTICE ***
  A signal handler function is called with two arguments:
  the first is the signal number, the second is the interrupted stack frame.

sigpending

sigpending()

  Examine pending signals.

  Returns a set of signal numbers that are pending for delivery to
  the calling thread.

sigtimedwait

sigtimedwait(sigset, timeout, /)

  Like sigwaitinfo(), but with a timeout.

  The timeout is specified in seconds, with floating point numbers allowed.

sigwait

sigwait(sigset, /)

  Wait for a signal.

  Suspend execution of the calling thread until the delivery of one of the
  signals specified in the signal set sigset.  The function accepts the signal
  and returns the signal number.

sigwaitinfo

sigwaitinfo(sigset, /)

  Wait synchronously until one of the signals in *sigset* is delivered.

  Returns a struct_siginfo containing information about the signal.

strsignal

strsignal(signalnum, /)

  Return the system description of the given signal.

  The return values can be such as "Interrupt", "Segmentation fault", etc.
  Returns None if the signal is not recognized.

valid_signals

valid_signals()

  Return a set of valid signal numbers on this platform.

  The signal numbers returned by this function can be safely passed to
  functions like `pthread_sigmask`.

Other members

ITIMER_PROF = 2
ITIMER_REAL = 0
ITIMER_VIRTUAL = 1
NSIG = 65
SIGABRT = 6
SIGALRM = 14
SIGBUS = 7
SIGCHLD = 17
SIGCLD = 17
SIGCONT = 18
SIGFPE = 8
SIGHUP = 1
SIGILL = 4
SIGINT = 2
SIGIO = 29
SIGIOT = 6
SIGKILL = 9
SIGPIPE = 13
SIGPOLL = 29
SIGPROF = 27
SIGPWR = 30
SIGQUIT = 3
SIGRTMAX = 64
SIGRTMIN = 34
SIGSEGV = 11
SIGSTOP = 19
SIGSYS = 31
SIGTERM = 15
SIGTRAP = 5
SIGTSTP = 20
SIGTTIN = 21
SIGTTOU = 22
SIGURG = 23
SIGUSR1 = 10
SIGUSR2 = 12
SIGVTALRM = 26
SIGWINCH = 28
SIGXCPU = 24
SIGXFSZ = 25
SIG_BLOCK = 0
SIG_DFL = 0
SIG_IGN = 1
SIG_SETMASK = 2
SIG_UNBLOCK = 1