Сигнал - Линук / Уник наредба

Линук подржава поуздане сигнале ПОСИКС (у даљем тексту "стандардни сигнали") и ПОСИКС сигнале у реалном времену.

Стандардни сигнали

Линук подржава стандардне сигнале наведене у наставку. Неколико сигналних бројева зависи од архитектуре, као што је наведено у колони "Вредност". (Када су дате три вредности, прва је обично валидна за алпха и спарц, средња за и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 ( СИГРТМАКС ). (Програми се увек требају односити на сигнале у реалном времену користећи нотацију СИГРТМИН + н, јер се опсег бројева сигнала у реалном времену разликује у Уницес-у.)

За разлику од стандардних сигнала, сигнали у реалном времену немају предефинисано значење: читав скуп сигнала у реалном времену може се користити у сврхе дефинисане у апликацији. (Имајте на уму да имплементација ЛинукТхреадс користи прва три сигнала у реалном времену.)

Подразумевана акција за унхандлед сигнал у реалном времену је да прекине процес пријема.

Сигнали у реалном времену се разликују следећим:

  1. Више редова сигнала у реалном времену може се ставити у ред. Насупрот томе, ако се испоручују вишеструке инстанце стандардног сигнала, док је тај сигнал тренутно блокиран, онда је само једна инстанца стављена у ред.
  2. Ако се сигнал шаље помоћу сигкуеуе (2), може се слати и пратећа вриједност (цијели број или показивач). Ако процес примања успоставља управљач за овај сигнал помоћу ознаке СА_СИГАЦТИОН до сигацтион (2), онда може добити ове податке преко поља си_валуе структуре сигинфо_т која се преноси као други аргумент управљаца. Штавише, поља си_пид и си_уид ове структуре могу се користити за добијање ПИД-а и стварног ИД-а корисника процеса слања сигнала.
  3. Сигнали у реалном времену се испоручују у гарантованом редоследу. Вишеструки сигнали истог типа истог типа се испоручују у редоследу који су послати. Ако се различитим сигналима у реалном времену пошаљу на процес, они се испоручују почевши од најниже нумерисаних сигнала. (Ие, сигнали са малим бројем имају највиши приоритет.)

Ако су у току и стандардни и реални временски сигнали за процес, ПОСИКС га оставља неодређеним који се испоручује први. Линук, као и многе друге имплементације, даје предност стандардним сигналима у овом случају.

Према ПОСИКС-у, имплементација би требала дозволити да бар _ПОСИКС_СИГКУЕУЕ_МАКС (32) сигнала у реалном времену буду стављени у ред у процесу. Међутим, умјесто постављања пер-процесне границе, Линук намеће ограничење на нивоу система на број редовних сигнала у редовном времену за све процесе.

Ово ограничење се може видети (и са привилегијом) измењено преко датотеке / проц / сис / кернел / ртсиг-мак . Повезани фајл, / проц / сис / кернел / ртсиг-мак , може се користити да сазна колико је сигнала у реалном времену тренутно у реду.

САГЛАСНОСТ

ПОСИКС.1

Важно: Користите команду човјека ( % човјек ) да бисте видели како се на вашем рачунару користи команда.