Skip to main content

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

Anonim

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

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

Линук подржава стандардне сигнале наведене у наставку. Неколико сигналних бројева зависи од архитектуре, као што је наведено у колони "Вредност". (Када су дате три вредности, прва је обично валидна за алпха и спарц, средња за и386, ппц и сх, а последња за мипс.

А - означава да сигнал није присутан на одговарајућој архитектури.)

Уноси у ступцу "Акција" табеле наводе подразумевану акцију за сигнал, како слиједи:

Термин

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

Игн

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

Језгро

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

Зауставити

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

Прво су сигнали описани у оригиналном стандарду ПОСИКС.1.

СигналВредностпоступакКоментар
или смрт процеса контроле
СИГИНТ2ТерминПрекини са тастатуре
СИГКУИТ3ЈезгроПрекините са тастатуре
СИГИЛЛ4ЈезгроНелегално Упутство
СИГАБРТ6ЈезгроПрекидај сигнал од прекид (3)
СИГФПЕ8ЈезгроИзузетак са плутајућим тачкама
СИГКИЛЛ9ТерминКилл сигнал
СИГСЕГВ11ЈезгроНеважећа референца меморије
СИГПИПЕ13ТерминБрокен цеви: пишите на цеви без читача
СИГАЛРМ14ТерминСигнал тајмера од алармни (2)
СИГТЕРМ15ТерминПрекидни сигнал
СИГУСР130,10,16ТерминКориснички дефинисани сигнал 1
СИГУСР231,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

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