Линук подржава поуздане сигнале ПОСИКС (у даљем тексту "стандардни сигнали") и ПОСИКС сигнале у реалном времену.
Стандардни сигнали
Линук подржава стандардне сигнале наведене у наставку. Неколико сигналних бројева зависи од архитектуре, као што је наведено у колони "Вредност". (Када су дате три вредности, прва је обично валидна за алпха и спарц, средња за и386, ппц и сх, а последња за мипс.
А - означава да сигнал није присутан на одговарајућој архитектури.)
Уноси у ступцу "Акција" табеле наводе подразумевану акцију за сигнал, како слиједи:
Термин
Подразумевана акција је да прекине процес.
Игн
Подразумевана акција је игнорисање сигнала.
Језгро
Подразумевана акција је да прекине процес и думп језгро.
Зауставити
Подразумевана акција је зауставити процес.
Прво су сигнали описани у оригиналном стандарду ПОСИКС.1.
Сигнал | Вредност | поступак | Коментар |
или смрт процеса контроле | |||
СИГИНТ | 2 | Термин | Прекини са тастатуре |
СИГКУИТ | 3 | Језгро | Прекините са тастатуре |
СИГИЛЛ | 4 | Језгро | Нелегално Упутство |
СИГАБРТ | 6 | Језгро | Прекид сигнала од аборта (3) |
СИГФПЕ | 8 | Језгро | Изузетак са плутајућим тачкама |
СИГКИЛЛ | 9 | Термин | Килл сигнал |
СИГСЕГВ | 11 | Језгро | Неважећа референца меморије |
СИГПИПЕ | 13 | Термин | Брокен цеви: пишите на цеви без читача |
СИГАЛРМ | 14 | Термин | Сигнал тајмера из аларма (2) |
СИГТЕРМ | 15 | Термин | Прекидни сигнал |
СИГУСР1 | 30,10,16 | Термин | Кориснички дефинисани сигнал 1 |
СИГУСР2 | 31,12,17 | Термин | Кориснички дефинисани сигнал 2 |
СИГЦХЛД | 20,17,18 | Игн | Дете су престале или престале |
СИГЦОНТ | 19,18,25 | Наставите ако зауставите | |
СИГСТОП | 17,19,23 | Зауставити | Заустави процес |
СИГТСТП | 18,20,24 | Зауставити | Зауставите унос на тти |
СИГТТИН | 21,21,26 | Зауставити | тти улаз за позадински процес |
СИГТТОУ | 22,22,27 | Зауставити | тти оутпут за позадински процес |
Сигнали СИГКИЛЛ и СИГСТОП не могу бити ухваћени, блокирани или игнорисани.
Следећи сигнали нису у стандарду ПОСИКС.1, али су описани у СУСв2 и СУСв3 / ПОСИКС 1003.1-2001.
Сигнал | Вредност | поступак | Коментар |
СИГПОЛЛ | Термин | Положај догађаја (Сис В). Синоним за СИГИО | |
СИГПРОФ | 27,27,29 | Термин | Тајмер за профилирање је истекао |
СИГСИС | 12, -, 12 | Језгро | Лош аргумент за рутину (СВИД) |
СИГТРАП | 5 | Језгро | Трап / трап бреакпоинт |
СИГУРГ | 16,23,21 | Игн | Хитно стање на утичници (4,2 БСД) |
СИГВТАЛРМ | 26,26,28 | Термин | Виртуелни будилник (4.2 БСД) |
СИГКСЦПУ | 24,24,30 | Језгро | Прекорачено време ЦПУ-а (4.2 БСД) |
СИГКСФСЗ | 25,25,31 | Језгро | Прекорачена величина датотеке (4.2 БСД) |
До и укључујући Линук 2.2, подразумевано понашање за СИГСИС , СИГКСЦПУ , СИГКСФСЗ и (на архитектури осим СПАРЦ-а и МИПС-а) СИГБУС је требало да прекине процес (без депоније језгра). (На неким другим Уницес-у, подразумевана акција за СИГКСЦПУ и СИГКСФСЗ је да прекине процес без депоније језгра.) Линук 2.4 је у складу са захтевима ПОСИКС 1003.1-2001 за ове сигнале, окончавајући процес са депонијом језгра.
Следећи разни други сигнали.
Сигнал | Вредност | поступак | Коментар |
СИГЕМТ | 7, -, 7 | Термин | |
СИГСТКФЛТ | -, 16, - | Термин | Грешка на стацк на копроцесор (неискоришћено) |
СИГИО | 23,29,22 | Термин | И / О је сада могућ (4.2 БСД) |
СИГЦЛД | -, -, 18 | Игн | Синоним за СИГЦХЛД |
СИГПВР | 29,30,19 | Термин | Отказ напајања (систем В) |
СИГИНФО | 29, -, - | Синоним за СИГПВР | |
СИГЛОСТ | -, -, - | Термин | Изгубљена брава датотеке |
СИГВИНЦХ | 28,28,20 | Игн | Сигнал за промену величине прозора (4.3 БСД, Сунце) |
СИГУНУСЕД | -, 31, - | Термин | Неупотребљени сигнал (биће СИГСИС) |
(Сигнал 29 је СИГИНФО / СИГПВР на алфи, али СИГЛОСТ на спарц.)
СИГЕМТ није наведен у ПОСИКС 1003.1-2001, али се без икаквог појављивања појављује на већини других Уницес-а, где је његова подразумевана акција обично да обустави процес помоћу главне думпове.
СИГПВР (који није наведен у ПОСИКС 1003.1-2001) обично се занемарује на осталим Уницес-у где се појављује.
СИГИО (који није наведен у ПОСИКС 1003.1-2001) је подразумевано игнорисан на неколико других Уницес.
Сигнали у реалном времену
Линук подржава сигнале у реалном времену као што су првобитно дефинисани у ПОСИКС.4 реал-тиме екстензијама (и сада укључени у ПОСИКС 1003.1-2001). Линук подржава 32 сигнала у реалном времену, нумерисани од 32 ( СИГРТМИН ) до 63 ( СИГРТМАКС ). (Програми се увек требају односити на сигнале у реалном времену користећи нотацију СИГРТМИН + н, јер се опсег бројева сигнала у реалном времену разликује у Уницес-у.)
За разлику од стандардних сигнала, сигнали у реалном времену немају предефинисано значење: читав скуп сигнала у реалном времену може се користити у сврхе дефинисане у апликацији. (Имајте на уму да имплементација ЛинукТхреадс користи прва три сигнала у реалном времену.)
Подразумевана акција за унхандлед сигнал у реалном времену је да прекине процес пријема.
Сигнали у реалном времену се разликују следећим:
- Више редова сигнала у реалном времену може се ставити у ред. Насупрот томе, ако се испоручују вишеструке инстанце стандардног сигнала, док је тај сигнал тренутно блокиран, онда је само једна инстанца стављена у ред.
- Ако се сигнал шаље помоћу сигкуеуе (2), може се слати и пратећа вриједност (цијели број или показивач). Ако процес примања успоставља управљач за овај сигнал помоћу ознаке СА_СИГАЦТИОН до сигацтион (2), онда може добити ове податке преко поља си_валуе структуре сигинфо_т која се преноси као други аргумент управљаца. Штавише, поља си_пид и си_уид ове структуре могу се користити за добијање ПИД-а и стварног ИД-а корисника процеса слања сигнала.
- Сигнали у реалном времену се испоручују у гарантованом редоследу. Вишеструки сигнали истог типа истог типа се испоручују у редоследу који су послати. Ако се различитим сигналима у реалном времену пошаљу на процес, они се испоручују почевши од најниже нумерисаних сигнала. (Ие, сигнали са малим бројем имају највиши приоритет.)
Ако су у току и стандардни и реални временски сигнали за процес, ПОСИКС га оставља неодређеним који се испоручује први. Линук, као и многе друге имплементације, даје предност стандардним сигналима у овом случају.
Према ПОСИКС-у, имплементација би требала дозволити да бар _ПОСИКС_СИГКУЕУЕ_МАКС (32) сигнала у реалном времену буду стављени у ред у процесу. Међутим, умјесто постављања пер-процесне границе, Линук намеће ограничење на нивоу система на број редовних сигнала у редовном времену за све процесе.
Ово ограничење се може видети (и са привилегијом) измењено преко датотеке / проц / сис / кернел / ртсиг-мак . Повезани фајл, / проц / сис / кернел / ртсиг-мак , може се користити да сазна колико је сигнала у реалном времену тренутно у реду.
САГЛАСНОСТ
ПОСИКС.1
Важно: Користите команду човјека ( % човјек ) да бисте видели како се на вашем рачунару користи команда.