Linux эки POSIX ишенимдүү белги (мындан ары "стандарттык сигналдар") жана POSIX реалдуу убакытта сигналдар колдойт.
Стандарттык сигналдардын
Linux төмөндө келтирилген типтүү сигналдарды колдойт. "Баасы" тилкеде көрсөтүлгөн бир нече белги номерлери, көз каранды архитектура болуп саналат. (Үч баалуулуктар берилген учурда, биринчи Alpha жана sparc үчүн, адатта, жарактуу, i386, подпунктугда жана Ш. үчүн орто бири, жана mips акыркы бири.
A - белги тиешелүү архитектура боюнча жок экенин билдирет).
төмөнкүдөй столдун "Аракет" тилкеде жазууларын белги үчүн демейки иш-аракеттерди аныктайт:
мөөнөт
По умолчанию иш жараянын токтотуу болуп саналат.
Ign
По умолчанию аракет сигнал көрмөксөн болуп саналат.
Core
По умолчанию иш жараянын токтотууга жана ядро төгүндүлөрүн болуп саналат.
токтотуу
По умолчанию иш жүрүмүн токтотууга болот.
Алгачкы сигнал баштапкы POSIX.1 стандартына сүрөттөлгөн.
сигнал | мааниси | Аракет | түшүндүрмө |
же контролдоочу жараянынын өлүм | |||
SIGINT | 2 | мөөнөт | тергич тартып үзүү |
SIGQUIT | 3 | Core | тергич алып чыгуу |
SIGILL | 4 | Core | мыйзамсыз нускама |
SIGABRT | 6 | Core | Муунтуп келген сигналды жоюу (3) |
SIGFPE | 8 | Core | Floating жагдай өзгөчө |
SIGKILL | 9 | мөөнөт | белги Kill |
SIGSEGV | 11 | Core | Жараксыз эс шилтеме |
SIGPIPE | 13 | мөөнөт | Broken түтүк: жок окурмандары менен чоор жазуу |
SIGALRM | 14 | мөөнөт | Коргойт Timer белги (2) |
SIGTERM | 15 | мөөнөт | токтотуу белги |
SIGUSR1 | 30,10,16 | мөөнөт | Колдонуучу аныкт-сигнал 1 |
SIGUSR2 | 31,12,17 | мөөнөт | Колдонуучу аныкт-сигналдын 2 |
sigchld сигнал | 20,17,18 | Ign | Child токтотуп же токтотулат |
SIGCONT | 19,18,25 | токтоп, эгер мындан ары да | |
SIGSTOP | 17,19,23 | токтотуу | токтотуу тартиби |
SIGTSTP | 18,20,24 | токтотуу | Телетайп боюнча терилген токтотуу |
SIGTTIN | 21,21,26 | токтотуу | маалымат алуу үчүн Телетайп киргизүү |
SIGTTOU | 22,22,27 | токтотуу | маалымат алуу үчүн Телетайп чыгаруу |
Сигналдар SIGKILL жана SIGSTOP кармап, бөгөттөлгөн, же албай коюуга болбойт.
POSIX.1 стандартында сигналдар жок Кийинки бирок SUSv2 жана SUSv3 / POSIX 1003.1-2001 сүрөттөлгөн.
сигнал | мааниси | Аракет | түшүндүрмө |
SIGPOLL | мөөнөт | Pollable окуя (SYS V). SIGIO менен синоним | |
SIGPROF | 27,27,29 | мөөнөт | Каттоо Таймер бүттү |
SIGSYS | 12 - 12 | Core | нугуна Bad аргумент (SVID) |
SIGTRAP | 5 | Core | Trace / чекити тузак |
SIGURG | 16,23,21 | Ign | чанак боюнча шашылыш шарт (4,2 BSD) |
SIGVTALRM | 26,26,28 | мөөнөт | Virtual ойготкуч саат (4,2 BSD) |
SIGXCPU | 24,24,30 | Core | CPU убакыт чегинен ашты (4,2 BSD) |
SIGXFSZ | 25,25,31 | Core | File өлчөм чегинен ашты (4,2 BSD) |
Жана анын ичинде Linux Up 2.2, SIGSYS үчүн демейки жүрүм-турум, SIGXCPU, SIGXFSZ, жана (SPARC жана MIPS караганда, архитектор башка) SIGBUS жараянын токтотууга болгон (негизги таштанды жок). (Кээ бир башка SIGXCPU жана SIGXFSZ үчүн демейки аракет негизги таштанды жок жараянын токтотууга болот Unices.) Негизги таштанды менен жараянды токтотуу, бул сигналдарды POSIX 1003.1-2001 талаптарына Linux 2.4 ылайыкталып.
Кийинки ар кандай сигналдар.
сигнал | мааниси | Аракет | түшүндүрмө |
SIGEMT | 7, - 7 | мөөнөт | |
SIGSTKFLT | -, 16 - | мөөнөт | диакритикалык боюнча Stack күнөөлүү (пайдаланылбаган) |
SIGIO | 23,29,22 | мөөнөт | I / O азыр мүмкүн (4,2 BSD) |
SIGCLD | -, -, 18, | Ign | Sigchld сигнал үчүн синоним |
SIGPWR | 29,30,19 | мөөнөт | Power аткарбоо (System V) |
SIGINFO | 29 - - | SIGPWR үчүн синоним | |
SIGLOST | - - - | мөөнөт | File кулпу жоголгон |
SIGWINCH | 28,28,20 | Ign | Терезе өзгөртүү сигнал (4,3 BSD, Sun) |
SIGUNUSED | -, 31, - | мөөнөт | Колдонулбаган сигнал (SIGSYS болот) |
(Сигнал 29 SIGINFO / бир Alpha бирок SIGLOST бир sparc боюнча SIGPWR болуп саналат.)
SIGEMT POSIX 1003.1-2001 көрсөтүлгөн эмес, бирок, neverthless анын демейки аракет негизги таштанды менен жараянды токтотуу үчүн, адатта, көбүнчө башка Unices, пайда болот.
SIGPWR (POSIX 1003.1-2001 көрсөтүлгөн жок), адатта, ал пайда башка Unices демейки тарабынан эске алынбайт.
SIGIO (POSIX 1003.1-2001 көрсөтүлгөн жок) бир нече башка Unices демейки тарабынан эске алынбайт.
Анык убактагы Сигналдар
Linux башында POSIX.4 реалдуу убакыт узартып (азыр POSIX 1003.1-2001 киргизилген) аныкталган чыныгы убакыттагы сигналдарды колдойт. Linux 63 (SIGRTMAX) 32 (SIGRTMIN) саны 32 реалдуу убакыт сигналдарды, колдойт. (Программалары дайыма реалдуу убакыт сигнал саны диапазону Unices боюнча ар түрдүү болгондуктан, ноталык SIGRTMIN колдонуп + н реалдуу убакыт сигналдар билдириши керек.)
стандарттык сигналдар айырмаланып, реалдуу убакыт сигналдар эч кандай аныкталган мааниге ээ: реалдуу убакыт сигналдар бүтүндөй комплекси арыз-аныкталган максаттар үчүн пайдаланылышы мүмкүн. (LinuxThreads ишке ашыруунун биринчи үч реалдуу убакыт сигналдарды колдонот Бирок, карап көрөлү.)
бир Unhandled реалдуу убакыт сигнал үчүн демейки иш-чаралардын кабыл алуу жараянын токтотуу болуп саналат.
Анык убактагы ээрчиген сигналдар менен айырмаланат:
- реалдуу убакыт сигналдар көп учурларда кезекке болот. стандарттуу бир белги бир нече учурлар деген сигнал бобуллубут, ал эми сактап турган болсо, тескерисинче, андан кийин гана бир учур кезекке турат.
- Сигнал sigqueue (2) пайдаланып жиберген болсо, коштомо балл (же бүтүн же көрсөткүчү) белги менен жиберилиши мүмкүн. Кабыл алуу жараяны болсо sigaction үчүн SA_SIGACTION желегин колдонуп, бул белги боюнча машыктыруучусу түзүлдү (2), андан кийин ал иштеп чыгуучунун экинчи аргумент катары өткөн siginfo_t структурасын si_value жаатындагы аркылуу бул маалыматтарды алууга болот. Мындан тышкары, бул түзүмүн si_pid жана si_uid талаалар сигнал жиберип жараянынын PID жана чыныгы колдонуучу ID алуу үчүн колдонулушу мүмкүн.
- Анык убактагы сигналдар бир кепилдик тартипте жүзөгө ашырылат. Ошол эле типтеги көп реалдуу убакытта сигналдар жиберилген үчүн жеткирилет. ар кандай реалдуу убакыт сигналдар кайра жөнөтүлгөн болсо, алар аз-саны белги менен башталган жеткирилет. (Башкача айтканда, аз саны сигналдар жогорку артыкчылыкка ээ болот.)
стандарт жана реалдуу убакыт сигналдар да жараянына күтүүдө болсо, POSIX биринчи салып турган аныкталбаган коёт. Linux, башка ишке сыяктуу эле, бул учурда кадимки чакыруулардын артыкчылык берет.
POSIX ылайык, ишке ашыруу, жок эле дегенде, _POSIX_SIGQUEUE_MAX (32) реалдуу убакыт сигналдар иштеп чыгуу үчүн кезекке турган жол керек. Бирок, ар бир ишке чек коюу эмес, Linux бардык жараяндардан үчүн кезекке реалдуу убакыт сигналдар санына системасы жалпы чек жүктөйт.
Бул чек көрсө болот (жана сыймык менен) / Жаздын / нүштөрдүн / ядро / rtsig макс делосуна аркылуу өзгөрдү. А байланыштуу билэ, / Жаздын / нүштөрдүн / ядро / rtsig-макс, көптөгөн реалдуу убакыт сигналдар учурда кезекке кантип билиш үчүн колдонсо болот.
ылайык келүүчү
POSIX.1
Маанилүү иш: буйруктар, атап айтканда ЭЭМ колдонулуп келе жатканын көрүп, бир киши (% адам) колдонуу.