Signals list used in BOINC

From BOINC Wiki
Jump to: navigation, search

Signals are used to tell a process that an event has occurred. It's mainly used in the Linux/Unix versions of BOINC to relay information back to the user.

BOINC core client sends only signal 9, which is used to abort applications. (SIGKILL)

But BOINC also captures signals.

Signal 1: Hang up. (SIGHUP)
Signal 2: Interrupt signal. (SIGINT)
Signal 3: Quit signal. (SIGQUIT)
Signal 15: Termination signal. (SIGTERM)

SIGPWR is sent when a power failure is imminent; for example, when the battery is running low on a laptop or when a power failure forces a server to switch to an uninterruptible power supply. Programs would be expected to synchronise state to permanent storage to ensure that if the system powers off data is not lost.

In all cases BOINC makes a graceful exit.

The complete list of signals:

1. SIGHUP: Hang up.
2. SIGINT: This Signal is sent to the foreground process when a user types C at the terminal keyboard.
4. SIGILL: Illegal instruction
5. SIGTRAP: Trace trap (not reset when caught)
6. SIGABRT/SIGIOT: The Abort signal or IO Terminate instruction. Currently only used by the assert macro to terminate the program when an assertion fails, and by the abort function.
7. SIGUNUSED: spare code
8. SIGFPE: Floating point exception
9. SIGKILL: The default action of this Signal (termination) cannot be changed. This provides a sure-fire means of stopping an otherwise unstoppable process.
10. SIGUSR1: A Signal reserved for application authors. The meaning will change from application to application.
11. SIGSEGV: Segmentation violation. The invalid storage access (Segmentation Violation) signal. 
 Generated in response to any of the following exceptions:

* Bound range exceeded in BOUND instruction (Interrupt 05h),
* Double Exception or an exception in the exception handler (Interrupt 08h),
* Segment Boundary violation by co-processor (Interrupt 09h),
* Invalid TSS (Interrupt 0Ah),
* Segment Not Present (Interrupt 0Bh),
* Stack Fault (Interrupt 0Ch),
* General Protection Violation (Interrupt 0Dh), or
* Page Fault (Interrupt 0Eh). 

Note that Interrupt 09h is only generated on 80386 processor; i486 and later CPUs cause Interrupt 0Dh when the co-processor accesses memory out of bounds. The Double Exception, Invalid TSS, Segment Not Present, Stack Fault, GPF, and Page Fault exceptions will cause an error code to be printed, if it is non-zero.

12. SIGUSR2: A Signal reserved for application authors. The meaning will change from application to application.
13. SIGPIPE: Whenever a process tries to write on a pipe with no readers, it is sent this Signal. SIGALRM SIGALRM is sent when an alarm timer expires (counts down to zero). An application can start an alarm timer with the alarm(2) system call.
14. SIGALRM: Alarm clock
15. SIGTERM: This is the default Signal sent by kill(1). Use of this Signal allows applications to clean up (delete temporary files, free system resources like semaphores, etc) before terminating at the user's bequest.
16. SIGUSR1: A Signal reserved for application authors. The meaning will change from application to application.
17. SIGCHLD: A process receives this Signal whenever a child process is stopped or terminates. gsh uses this to keep track of jobs, and the wait system call waits for this Signal to arrive before exiting.
18. SIGCONT: To restart a stopped process, send this Signal.
19. SIGSTOP: This Signal is used to stop a process' execution temporarily. Like SIGKILL, processes are not allowed to install a handler for this Signal.
20. SIGTSTP: This is similar to SIGSTOP, but is sent when the user types Z at the keyboard. Unlike SIGSTOP, this Signal can be ignored, caught, or blocked.
21. SIGTTIN: 21 This signal also stops a process. It is sent to background jobs that try to get input from the terminal.
22. SIGTTOU: Similar to SIGTTIN, but is sent when a background process tries to write to the terminal. This behavior is optional and is by default turned off. 

Original writer Original FAQ Date
Jorden 165 25-08-2007