Loading AI tools
асинхронне повідомлення процесу про будь-яку подію для взаємодії між процесами З Вікіпедії, вільної енциклопедії
Сигнал — це засіб міжпроцесної взаємодії в Unix-подібних та інших операційних системах, що сумісні зі стандартом POSIX. Сигнал являє собою асинхронне повідомлення, що посилається процесу, щоб проінформувати його про подію, яка відбулась. Коли процес отримує сигнал, операційна система перериває хід його виконання і запускає підпрограму обробки цього сигналу. Якщо в програмі явно не задана реакція на сигнал, запускається його стандартний обробник.
raise(3)
посилає обраний сигнал поточному процесу.Нижченаведений список документує перелік сигналів, які входять в специфікацію SUS.[1]. Усі сигнали визначені як константи у файлі <signal.h>
. Ім'я константи складається з префіксу «SIG» та ще декількох символів, що несуть в собі визначення функції сигналу. Кожна константа має відповідний їй числовий код; числові коди можуть відрізнятися в залежності від платформи.
Сигнал | Код | Дія за умовчанням | Опис |
---|---|---|---|
SIGABRT | 6 | Д — Аварійно завершити процес з додатковими діями | Сигнал переривання процесу |
SIGALRM | 14 | 3 — Аварійно завершити процес | Сигнал, який посилається, коли спливає час, визначений alarm функцією |
SIGBUS | 10 | Д | Невірне звернення до фізичної пам'яті |
SIGCHLD | 18 | І — Ігнорувати сигнал | Дочірній процес перервано |
SIGCONT | 25 | П — Продовжити перебіг процесу | Продовжує виконання, якщо перед цим процес було зупинено. |
SIGFPE | 8 | Д | Помилкова арифметична операція. |
SIGHUP | 1 | 3 | Термінал закрито. |
SIGILL | 4 | Д | Недопустима інструкція процесора. |
SIGINT | 2 | 3 | Сигнал переривання із терміналу (Ctrl-C). |
SIGKILL | 9 | 3 | Вбити процес (не може бути оброблено або проігноровано процесом). |
SIGPIPE | 13 | 3 | Спроба записати в конвеєр за відсутності процесу приймача. |
SIGQUIT | 3 | Д | Сигнал «Quit» з терміналу (Ctrl-\). |
SIGSEGV | 11 | Д | Невірне звернення до віртуальної пам'яті. |
SIGSTOP | 23 | С — Зупинити процес | Зупинити виконання (не може бути оброблено або проігноровано процесом). |
SIGTERM | 15 | 3 | Сигнал завершення (встановлений за умовчанням для утиліти kill). |
SIGTSTP | 20 | С | Сигнал зупинки, викликаний із терміналу (Ctrl-Z). |
SIGTTIN | 26 | С | Спроба зчитування з терміналу фоновим процесом. |
SIGTTOU | 27 | С | Спроба запису на термінал фоновим процесом. |
SIGUSR1 | 16 | 3 | Сигнал користувача 1. |
SIGUSR2 | 17 | 3 | Сигнал користувача 2. |
SIGPOLL | 22 | 3 | Сигнал опитування процесу. |
SIGPROF | 29 | 3 | Таймер профілювання сплинув. |
SIGSYS | 12 | Д | Неправильний системний виклик. |
SIGTRAP | 5 | Д | Сигнал, викликаний точкою зупину або трасуванням. |
SIGURG | 21 | І | Термінові дані, доступні на сокеті. |
SIGVTALRM | 28 | З | Час на «віртуальному таймері» сплинув. |
SIGXCPU | 30 | Д | Ліміт процесорного часу перевищено. |
SIGXFSZ | 31 | Д | Ліміт розміру файлу перевищено. |
Обробники сигналів можуть призначатись функцією signal()
. Якщо для певного сигналу не встановлений обробник, то використовується стандартний. В іншому випадку сигнал перехоплюється і викликається його обробник. Процес також може задавати два способи поведінки, без створення обробника: ігнорувати сигнал (SIG_IGN) та використати стандартний обробник (SIG_DFL). Є два сигнали, які не можуть бути перехопленими та обробленими: SIGKILL та SIGSTOP.
<signal.h>
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.