Mae Linux yn cefnogi signalau dibynadwy POSIX (yn y blaen, "signalau safonol") a signalau POSIX amser real.
Arwyddion Safonol
Mae Linux yn cefnogi'r signalau safonol a restrir isod. Mae nifer o rifau signal yn ddibynnol ar bensaernïaeth, fel y nodir yn y golofn "Gwerth". (Pan roddir tri gwerthoedd, mae'r un cyntaf fel arfer yn ddilys ar gyfer alpha a sparc, yr un canol ar gyfer i386, ppc a sh, a'r un olaf ar gyfer mips.
A - yn dynodi bod signal yn absennol ar y pensaernïaeth gyfatebol.)
Mae'r cofnodion yn y golofn "Gweithredu" y tabl yn nodi'r camau rhagosodedig ar gyfer y signal, fel a ganlyn:
Tymor
Camau rhagosodedig yw terfynu'r broses.
Ign
Camau rhagosodedig yw anwybyddu'r signal.
Craidd
Camau rhagosodedig yw terfynu'r broses a chwympo craidd.
Stopio
Camau rhagosodedig yw atal y broses.
Yn gyntaf, y signalau a ddisgrifir yn y safon POSIX.1 gwreiddiol.
Signal | Gwerth | Gweithredu | Sylw |
neu farwolaeth y broses reoli | |||
SIGINT | 2 | Tymor | Ymyrryd o'r bysellfwrdd |
SIGQUIT | 3 | Craidd | Gadewch o bysellfwrdd |
SIGILL | 4 | Craidd | Cyfarwyddyd Anghyfreithlon |
SIGABRT | 6 | Craidd | Erthylu'r signal rhag erthylu (3) |
SIGFPE | 8 | Craidd | Eithriad pwynt symudol |
SIGKILL | 9 | Tymor | Llofnodwch signal |
SIGSEGV | 11 | Craidd | Cyfeirnod cof annilys |
SIGPIPE | 13 | Tymor | Peipen wedi'i dorri: ysgrifennu at bibell heb ddarllenwyr |
SIGALRM | 14 | Tymor | Signer amserydd o larwm (2) |
SIGTERM | 15 | Tymor | Pwynt terfynu |
SIGUSR1 | 30,10,16 | Tymor | Sylweddol wedi'i ddiffinio gan ddefnyddiwr 1 |
SIGUSR2 | 31,12,17 | Tymor | Sylwedd 2 wedi'i ddiffinio gan ddefnyddiwr |
SIGCHLD | 20,17,18 | Ign | Plentyn wedi'i stopio neu ei derfynu |
SIGCONT | 19,18,25 | Parhewch os yw wedi'i stopio | |
SIGSTOP | 17,19,23 | Stopio | Stopio'r broses |
SIGTSTP | 18,20,24 | Stopio | Stopio teipio ar y tyt |
SIGTTIN | 21,21,26 | Stopio | Mewnbwn tty ar gyfer y broses gefndirol |
SIGTTOU | 22,22,27 | Stopio | allbwn tty ar gyfer y broses gefndir |
Ni all y signalau SIGKILL a SIGSTOP gael eu dal, eu blocio, neu eu hanwybyddu.
Nesaf, nid yw'r signalau yn y safon POSIX.1 ond a ddisgrifir yn SUSv2 a SUSv3 / POSIX 1003.1-2001.
Signal | Gwerth | Gweithredu | Sylw |
SIGPOLL | Tymor | Digwyddiad plag (Sys V). Cyfystyr o SIGIO | |
SIGPROF | 27,27,29 | Tymor | Daeth amserlen proffilio i ben |
SIGSYS | 12, -, 12 | Craidd | Dadl wael i arferol (SVID) |
SIGTRAP | 5 | Craidd | Trap olrhain / torri pwynt |
SIGURG | 16,23,21 | Ign | Amod brys ar soced (4.2 BSD) |
SIGVTALRM | 26,26,28 | Tymor | Cloc larwm rhithwir (4.2 BSD) |
SIGXCPU | 24,24,30 | Craidd | Roedd y terfyn amser CPU yn uwch na (4.2 BSD) |
SIGXFSZ | 25,25,31 | Craidd | Rhagori ar y terfyn maint ffeil (4.2 BSD) |
Hyd at ac yn cynnwys Linux 2.2, yr ymddygiad rhagosodedig ar gyfer SIGSYS , SIGXCPU , SIGXFSZ , ac (ar bensaernļau heblaw SPARC a MIPS) SIGBUS oedd i derfynu'r broses (heb wahardd craidd). (Ar rai Unedau eraill, y camau rhagosodedig ar gyfer SIGXCPU a SIGXFSZ yw terfynu'r broses heb dump craidd.) Mae Linux 2.4 yn cydymffurfio â gofynion POSIX 1003.1-2001 ar gyfer y signalau hyn, gan derfynu'r broses gyda chwythiad craidd.
Nesaf arwyddion eraill nesaf.
Signal | Gwerth | Gweithredu | Sylw |
SIGEMT | 7, -, 7 | Tymor | |
SIGSTKFLT | -, 16, - | Tymor | Ffa stack ar goprosesydd (heb ei ddefnyddio) |
SIGIO | 23,29,22 | Tymor | Rwyf i / O yn awr yn bosibl (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | Cyfystyr i SIGCHLD |
SIGPWR | 29,30,19 | Tymor | Methiant pŵer (System V) |
SIGINFO | 29, -, - | Cyfystyr i SIGPWR | |
SIGLOST | -, -, - | Tymor | Ffeil cloi wedi'i golli |
SIGWINCH | 28,28,20 | Ign | Newid maint y ffenestr (4.3 BSD, Haul) |
GWYBODAETH | -, 31, - | Tymor | Sylweddol heb ei ddefnyddio (bydd SIGSYS) |
(Mae Signal 29 yn SIGINFO / SIGPWR ar alffa ond SIGLOST ar sparc.)
Nid yw SIGEMT wedi'i bennu yn POSIX 1003.1-2001, ond nid yw'n ymddangos ar y rhan fwyaf o Undebau eraill, lle mae ei weithred ddiffygiol fel rheol yn dod i ben â'r broses gyda dympiad craidd.
Fel arfer, caiff SIGPWR (nad yw wedi'i bennu yn POSIX 1003.1-2001) ei anwybyddu yn ddiofyn ar yr Unedau eraill hynny lle mae'n ymddangos.
Anwybyddir SIGIO (nad yw'n cael ei bennu yn POSIX 1003.1-2001) yn ddiofyn ar nifer o Unedau eraill.
Arwyddion amser real
Mae Linux yn cefnogi signalau amser real fel y'u diffinnwyd yn wreiddiol yn yr estyniadau POSIX.4 amser real (ac sydd bellach wedi'u cynnwys yn POSIX 1003.1-2001). Mae Linux yn cefnogi 32 o signalau amser real, wedi'u rhifo o 32 ( SIGRTMIN ) i 63 ( SIGRTMAX ). (Dylai rhaglenni bob amser gyfeirio at arwyddion amser real gan ddefnyddio nodiadau SIGRTMIN + n, gan fod yr ystod o rifau signal amser real yn amrywio ar draws Unices.)
Yn wahanol i signalau safonol, nid oes gan arwyddion amser real unrhyw ystyron rhagnodedig: gellir defnyddio'r set gyfan o signalau amser real ar gyfer dibenion a ddiffinnir gan y cais. (Sylwch, fodd bynnag, bod y gweithrediad LinuxThreads yn defnyddio'r tri signal cyntaf amser real.)
Y camau rhagosodedig ar gyfer signal heb ei drin yn amser real yw terfynu'r broses dderbyn.
Mae arwyddion amser real yn cael eu gwahaniaethu gan y canlynol:
- Gellir ciwio enghreifftiau lluosog o arwyddion amser real. Mewn cyferbyniad, os cyflwynir lluosog o arwydd safonol tra bod y signal hwnnw wedi'i blocio ar hyn o bryd, yna dim ond un achos sy'n ciwio.
- Os caiff y signal ei anfon gan ddefnyddio sigqueue (2), gellir anfon gwerth cysylltiedig (naill ai cyfanrif neu bwyntydd) gyda'r signal. Os yw'r broses dderbyn yn sefydlu trinydd ar gyfer y signal hwn gan ddefnyddio baner SA_SIGACTION i doriad (2) yna gall gael y data hwn trwy faes si_value y strwythur siginfo_t a basiwyd fel yr ail ddadl i'r trosglwyddwr. At hynny, gellir defnyddio caeau si_pid a si_uid o'r strwythur hwn i gael y PID ac adnabod defnyddiwr go iawn o'r broses sy'n anfon y signal.
- Cyflwynir signalau amser real mewn archeb gwarantedig. Mae arwyddion lluosog amser real o'r un math yn cael eu cyflwyno yn y drefn y cawsant eu hanfon. Os bydd arwyddion amser real gwahanol yn cael eu hanfon at broses, fe'u cyflwynir gan ddechrau gyda'r signal rhif isaf. (Ie, mae gan arwyddion rhif isel y flaenoriaeth uchaf.)
Os yw'r arwyddion safonol a amser real ar y gweill am broses, mae POSIX yn ei ddileu heb ei amlinellu sy'n cael ei gyflwyno yn gyntaf. Mae Linux, fel llawer o weithrediadau eraill, yn rhoi blaenoriaeth i arwyddion safonol yn yr achos hwn.
Yn ôl POSIX, dylai gweithredu alluogi o leiaf _POSIX_SIGQUEUE_MAX (32) o arwyddion amser real i gael eu ciwio i broses. Fodd bynnag, yn hytrach na gosod terfyn y broses, mae Linux yn gosod terfyn system-gyfan ar nifer y signalau ciw mewn amser real ar gyfer pob proses.
Gellir gweld y terfyn hwn (a gyda braint) wedi'i newid trwy'r ffeil / proc / sys / kernel / rtsig-max . Gellir defnyddio ffeil gysylltiedig, / proc / sys / kernel / rtsig-max , i ganfod faint o signalau amser real sy'n cael eu ciwio ar hyn o bryd.
CYFLAWNI I
POSIX.1
Pwysig: Defnyddiwch y gorchymyn dyn ( % man ) i weld sut mae gorchymyn yn cael ei ddefnyddio ar eich cyfrifiadur penodol.