Linux POSIX сенімді сигналдарын (бұдан әрі «стандартты сигналдар») және POSIX нақты уақыт сигналдарын қолдайды.
Стандартты сигналдар
Linux төменде көрсетілген стандартты сигналдарды қолдайды. Бірнеше сигнал сандары «Мән» бағанында көрсетілгендей архитектураға тәуелді болады. (Үш мән берілсе, біріншісі әдетте альфа және спарц үшін, ал екіншісі i386, ppc және sh үшін, ал соңғы біреуі үшін жарамды.
A - тиісті архитектурадағы сигнал жоқ екендігін білдіреді.)
Кестенің «Әрекет» бағанындағы жазбалар сигналдың әдепкі әрекетін келесідей көрсетеді:
Мерзімі
Әдепкі әрекет - бұл процесті тоқтату.
Енгізіңіз
Әдепкі әрекет - сигналды елемеу.
Core
Әдепкі әрекет - процесті және қоқысты өзегін тоқтату.
Тоқта
Әдепкі әрекет - процесті тоқтату.
Алдымен бастапқы POSIX.1 стандартында сипатталған сигналдар.
Сигнал | Мәні | Әрекет | Түсініктеме |
немесе бақылау процесінің қайтыс болуы | |||
SIGINT | 2 | Мерзімі | Пернетақтадан үзу |
SIGQUIT | 3 | Core | Пернетақтадан шығыңыз |
SIGILL | 4 | Core | Заңсыз нұсқаулық |
SIGABRT | 6 | Core | Қабылдамаудан бас тарту сигналы (3) |
SIGFPE | 8 | Core | Шегіну нүктесінің ерекшелігі |
SIGKILL | 9 | Мерзімі | Соққы жасаңыз |
SIGSEGV | 11 | Core | Жадтың анықтамасы жарамсыз |
SIGPIPE | 13 | Мерзімі | Брондалған құбыр: оқырмандармен құбырға жазыңыз |
SIGALRM | 14 | Мерзімі | Ескерту сигналының таймерінің сигналы (2) |
SIGTERM | 15 | Мерзімі | Тоқтату сигналы |
SIGUSR1 | 30,10,16 | Мерзімі | Пайдаланушы анықтаған сигнал 1 |
SIGUSR2 | 31,12,17 | Мерзімі | Пайдаланушы анықтаған сигнал 2 |
SIGCHLD | 20,17,18 | Енгізіңіз | Бала тоқтап немесе тоқтатылды |
SIGCONT | 19,18,25 | Егер тоқтатылса, жалғастырыңыз | |
SIGSTOP | 17,19,23 | Тоқта | Тоқтату процесі |
SIGTSTP | 18,20,24 | Тоқта | Tty ішінде теру тоқтатылады |
SIGTTIN | 21,21,26 | Тоқта | фондық процесті енгізу үшін |
SIGTTOU | 22,22,27 | Тоқта | өңдік процесс үшін tty шығу |
SIGKILL және SIGSTOP сигналдары ұсталмайды, бұғатталмайды немесе елемейді.
Бұдан әрі POSIX.1 стандартында емес, бірақ SUSv2 және SUSv3 / POSIX 1003.1-2001 сипатталған сигналдар.
Сигнал | Мәні | Әрекет | Түсініктеме |
SIGPOLL | Мерзімі | Дауыс беретін оқиға (Sys V). SIGIO синонимі | |
SIGPROF | 27,27,29 | Мерзімі | Таймерді профильдеу мерзімі аяқталды |
SIGSYS | 12, -, 12 | Core | Күнделікті (SVID) дұрыс емес дәлел |
SIGTRAP | 5 | Core | Бақылау нүктесінің тұзағы |
SIGURG | 16,23,21 | Енгізіңіз | Розеткадағы жедел жағдай (4.2 BSD) |
SIGVTALRM | 26,26,28 | Мерзімі | Виртуалды оятқыш (4.2 BSD) |
SIGXCPU | 24,24,30 | Core | CPU уақыт шегі асып (4.2 BSD) |
SIGXFSZ | 25,25,31 | Core | Файл өлшемінің шегі асып кетті (4.2 BSD) |
SIGSYS , SIGXCPU , SIGXFSZ және SIGBUS (SPARC және MIPS қоспағанда сәулет) бойынша әдепкі мінез-құлық Linux 2.2-ке дейін және қоса алғанда, процесті тоқтатады (негізгі қоқыссыз ). (Кейбір басқа бөлімшелерде SIGXCPU және SIGXFSZ үшін әдепкі әрекет ядро тастауынсыз процесті аяқтау болып табылады.) 2.4 Linux осы сигналдарға арналған POSIX 1003.1-2001 талаптарына сәйкес келеді, бұл ядро төсенішімен процесті тоқтатады.
Әр түрлі келесі сигналдар.
Сигнал | Мәні | Әрекет | Түсініктеме |
SIGEMT | 7, -, 7 | Мерзімі | |
SIGSTKFLT | -, 16, - | Мерзімі | Сцепроцессорға стек ақаулары (пайдаланылмаған) |
SIGIO | 23,29,22 | Мерзімі | I / O қазір мүмкін (4.2 BSD) |
SIGCLD | -, -, 18 | Енгізіңіз | SIGCHLD синонимі |
SIGPWR | 29,30,19 | Мерзімі | Электр қуаты өшіп қалса (V жүйесі) |
SIGINFO | 29, -, - | SIGPWR синонимі | |
SIGLOST | -, -, - | Мерзімі | Файл құлпы жоғалды |
SIGWINCH | 28,28,20 | Енгізіңіз | Терезенің өлшемін өзгерту сигналы (4.3 BSD, Күн) |
SIGUNUSED | -, 31, - | Мерзімі | Пайдаланылмаған сигнал (SIGSYS болады) |
(29-сигнал альфадағы SIGINFO / SIGPWR , бірақ SIGLOST-да спаркада .)
SIGEMT POSIX 1003.1-2001 жүйесінде көрсетілмеген, бірақ ол көптеген басқа Unices-да пайда болады, онда әдепкі әрекеті, әдетте, ядро тастайтын процесті тоқтату болып табылады.
SIGPWR (ол POSIX 1003.1-2001 ішінде көрсетілмеген), әдетте, ол пайда болған басқа бірліктерде әдепкі бойынша еленбейді.
SIGIO (POSIX 1003.1-2001-де көрсетілмеген) бірнеше басқа Unices-да әдепкі бойынша еленбейді.
Нақты уақыттағы сигналдар
Linux нақты уақытта POSIX.4 нақты уақыт кеңейтілімінде анықталғандай нақты уақыт сигналдарын қолдайды (және қазір POSIX 1003.1-2001 нұсқасына кіреді). Linux 32 ( SIGRTMIN ) -дан 63 ( SIGRTMAX ) -ке дейінгі 32 нақты уақыт сигналдарын қолдайды. (Бағдарламалар әрқашан SIGRTMIN + n белгілерін пайдаланып, нақты уақыт сигналдарына сілтеме жасау керек, себебі нақты уақыт сигнал нөмірлерінің саны Unices ішінде өзгереді.)
Стандартты сигналдардан айырмашылығы, нақты уақыт сигналдарында алдын ала анықталған мәндер жоқ: нақты уақыт сигналдарының бүкіл жиынтығы қолданылатын мақсаттар үшін пайдаланылуы мүмкін. (LinuxThreads іске асыру алғашқы үш нақты уақыт сигналдарын қолданатынын ескеріңіз.)
Өңделмеген нақты уақыт сигналына арналған әдепкі әрекет қабылдау процесін тоқтатады.
Нақты уақыттағы сигналдар төмендегілермен ерекшеленеді:
- Нақты уақыттағы сигналдардың бірнеше даналарын кезекке қоюға болады. Керісінше, егер сигнал қазір бұғатталған кезде стандартты сигналдың бірнеше данасы жеткізілсе, онда тек бір данасы кезекке қойылады.
- Егер сигнал sigqueue (2) арқылы жіберілсе , сигналмен бірге ілесетін мән (бүтін сан немесе көрсеткіш) жіберілуі мүмкін. Егер қабылдау үрдісі SA_SIGACTION жалаушасын (2) sigaction (2) арқылы осы сигнал үшін өңдегішті орнатса , ол осы деректерді өңдегішінің екінші дәлелі ретінде алынған siginfo_t құрылымының si_value өрісі арқылы ала алады. Сонымен қатар, осы құрылымның si_pid және si_uid өрістерін PID және сигнал жіберетін процестің шынайы пайдаланушы идентификаторын алу үшін пайдалануға болады.
- Нақты уақыттағы сигналдар кепілдік берілген тәртіппен жеткізіледі. Бір типтегі бірнеше нақты уақыт сигналдары жіберілген тәртіпте жеткізіледі. Процесті әр түрлі нақты уақыт сигналдары жібергенде, олар төменгі нөмірлі сигналдан бастап жеткізіледі. (Яғни, төменгі сандық сигналдар жоғары басымдыққа ие.)
Егер стандартты және нақты уақыт сигналдары процесте күтілсе, POSIX оны алдымен жеткізілетін анықталмаған қалдырады. Көптеген басқа бағдарламалар сияқты Linux бұл жағдайда стандартты сигналдарға басымдық береді.
POSIX-ке сәйкес, іске асыру процесте кезекке қоюға арналған _POSIX_SIGQUEUE_MAX (32) нақты уақыт сигналдарына рұқсат беруі керек. Дегенмен, процестік процесті шектеуді емес, Linux барлық процестер үшін кез-келген нақты уақыт сигналдарының санына жүйелік шегі белгілейді.
Бұл шектеуді / proc / sys / kernel / rtsig-max файлымен өзгертілген (және артықшылықпен) қарауға болады. Қазіргі уақытта қандай нақты уақыт сигналдарының кезекке қойылғанын білу үшін, / proc / sys / kernel / rtsig-max файлын пайдалануға болады.
КЕЛІСІЛГЕН
POSIX.1
Маңызды: Жеке компьютерде пәрменді қалай пайдалану керектігін көру үшін man ( % man ) пәрменін пайдаланыңыз.