notebook/notes/posix/signals.md

6.8 KiB

title TARGET DECK FILE TAGS tags
Signals Obsidian::STEM posix::signal
posix
signal

Overview

Code Name
1 SIGHUP
2 SIGINT
4 SIGILL
6 SIGABRT
7 SIGBUS
8 SIGFPE
9 SIGKILL
11 SIGSEGV
13 SIGPIPE
15 SIGTERM

%%ANKI Basic What command can we run to access the official manual page for signals? Back: man 7 signal Reference: Dowling, “A List of Signals and What They Mean.” Tags: linux::cli

END%%

%%ANKI Basic What command can we run to print POSIX signals to the terminal? Back: kill -l Reference: Cooper, Mendel. “Advanced Bash-Scripting Guide,” n.d., 916.

END%%

%%ANKI Cloze {ascii} is to ASCII as {kill -l} is to POSIX signals. Reference: Cooper, Mendel. “Advanced Bash-Scripting Guide,” n.d., 916.

END%%

%%ANKI Basic What does it mean for a program to (perform a) trap? Back: It is terminated abruptly before its usual end. Reference: Jens Gustedt, Modern C (Shelter Island, NY: Manning Publications Co, 2020).

END%%

SIGHUP (1)

A process receives a SIGHUP signal when the terminal it is attached to goes away before it finishes executing.

%%ANKI Cloze Signal {SIGHUP} corresponds to number {1}. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What is the HUP in SIGHUP an acronym for? Back: Hang up Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic When does a process receive a SIGHUP signal? Back: When the terminal it is attached to disappears before it finishes execution. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What historical context led to SIGHUP's name? Back: This name refers to hanging up the telephone in the days of telephone modems. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What command is used to make a program immune to SIGHUP signals? Back: nohup Reference: man 1 nohup Tags: linux::cli

END%%

%%ANKI Basic If a nohup program's stdin is a terminal, where is its input redirected from? Back: An unreadable file. Reference: man 1 nohup Tags: linux::cli

END%%

%%ANKI Basic If a nohup program's stdout is a terminal, where is its output redirected to? Back: nohup.out if possible, $HOME/nohup.out otherwise. Reference: man 1 nohup Tags: linux::cli

END%%

%%ANKI Basic If a nohup program's stderr is a terminal, where is its errors redirected to? Back: stdout Reference: man 1 nohup Tags: linux::cli

END%%

%%ANKI Basic What command can be run to view all processes that would receive a SIGHUP when the current terminal exits? Back: ps T Reference: man 1 ps

END%%

SIGINT (2)

Indicates the process was interrupted by the user. Happens when pressing Ctrl-C from the controlling terminal.

%%ANKI Cloze Signal {SIGINT} corresponds to number {2}. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What control sequence usually triggers a SIGINT? Back: Ctrl-C Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What is the INT in SIGINT short for? Back: Interrupt Reference: Dowling, “A List of Signals and What They Mean.”

END%%

SIGILL (4)

Indicates the CPU encountered an instruction it does not understand or does not have permission to execute. Can often indicate corruption in some way or perhaps an attempt to execute data instead of code.

%%ANKI Cloze Signal {SIGILL} corresponds to number {4}. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What is the ILL in SIGILL short for? Back: Illegal instruction Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic When does a process receive a SIGILL signal? Back: When the CPU encounters an instruction it can't run. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic Corruption of machine code would probably cause what signal raise? Back: SIGILL Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic Attempts to run a privileged instruction would probably cause what signal raise? Back: SIGILL Reference: Dowling, “A List of Signals and What They Mean.”

END%%

SIGABRT (6)

A signal, usually sent when the process itself invokes abort(). Indicates an "emergency stop".

%%ANKI Cloze Signal {SIGABRT} corresponds to number {6}. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What function is usually used to invoke SIGABRT? Back: abort() Reference: Dowling, “A List of Signals and What They Mean.” Tags: c17

END%%

%%ANKI Basic Which signal corresponds to the idea of an "emergency stop"? Back: SIGABRT Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic Which header contains the abort() function prototype? Back: <stdlib.h> Reference: N/A Tags: c17

END%%

%%ANKI Basic What distinguishes abort() from exit()? Back: The latter gracefully closes the application. Reference: N/A Tags: c17

END%%

SIGBUS (7)

Indicates the CPU encountered an instruction to access memory it cannot physically address, i.e. an invalid address for the address bus.

%%ANKI Cloze Signal {SIGBUS} corresponds to number {7}. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic Which signal usually corresponds to alignment errors when accessing memory? Back: SIGBUS Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic When does the CPU emit a SIGBUS signal? Back: When it tries accessing memory it cannot physically address. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

%%ANKI Basic What is the BUS in SIGBUS short for? Back: Bus error. Reference: Dowling, “A List of Signals and What They Mean.”

END%%

Bibliography

  • Cooper, Mendel. “Advanced Bash-Scripting Guide,” n.d., 916.
  • Dowling, “A List of Signals and What They Mean.”
  • Jens Gustedt, Modern C (Shelter Island, NY: Manning Publications Co, 2020).