Linux POSIX ishonchli signallarini (bundan keyin "standart signallar") va POSIX real vaqtda signallarni qo'llab-quvvatlaydi.
Standart signallar
Linux quyidagi standart signallarni qo'llab-quvvatlaydi. Bir necha signal raqamlari "qiymat" ustunida ko'rsatilganidek, me'morchilikka bog'liq. (Bu erda uchta qiymat berilgan bo'lsa, ikkinchisi odatda alfa va sparc uchun, ikkinchisi esa i386, ppc va sh uchun, va mits uchun oxirgi.
A - mos keladigan arxitekturada signal yo'qligini bildiradi.)
Jadvalning "Amaliy" ustunidagi yozuvlar signal uchun ko'rsatuv amalni quyidagicha belgilaydi:
Davr
Odatiy amal - jarayonni tugatish.
Ign
Standart amal signalni e'tiborsiz qoldirishdir.
Core
Odatiy amal - jarayonni tugatish va yadro yadrosi.
To'xta
Odatiy harakatlar jarayonni to'xtatishdir.
Avval original POSIX.1 standartida tasvirlangan signallar.
Signal | Qiymat | Harakat | Fikr |
yoki nazorat qilish jarayonining o'limiga olib kelishi mumkin | |||
SIGINT | 2 | Davr | Klaviaturadan chiqib ketish |
SIGQUIT | 3 | Core | Klaviaturadan chiqing |
SIGILL | 4 | Core | Noqonuniy yo'l-yo'riq |
SIGABRT | 6 | Core | Bekor qilishni bekor qilish signali (3) |
SIGFPE | 8 | Core | O'zgaruvchan nuqta istisnosiz |
SIGKILL | 9 | Davr | O'ldirish signali |
SIGSEGV | 11 | Core | Xotira arizasi noto'g'ri |
SIGPIPE | 13 | Davr | Buzilgan quvur: hech qanday o'quvchi bilan quvurga yozing |
SIGALRM | 14 | Davr | Uyg'otkich signalidan taymer (2) |
SIGTERM | 15 | Davr | Bekor qilish signali |
SIGUSR1 | 30,10,16 | Davr | Foydalanuvchi tomonidan belgilangan signal 1 |
SIGUSR2 | 31,12,17 | Davr | Foydalanuvchi tomonidan belgilangan signal 2 |
SIGCHLD | 20,17,18 | Ign | Bola to'xtatildi yoki tugatildi |
SIGCONT | 19,18,25 | To'xtatilsa, davom eting | |
SIGSTOP | 17,19,23 | To'xta | To'xtatish jarayoni |
SIGTSTP | 18,20,24 | To'xta | Tty-da terish to'xtatilsin |
SIGTTIN | 21,21,26 | To'xta | fon jarayoni uchun tty usuli |
SIGTTOU | 22,22,27 | To'xta | orqa fon jarayonida tty chiqishi |
SIGKILL va SIGSTOP signallari ushlanishi, bloklanishi yoki e'tiborsizlanishi mumkin emas.
Keyinchalik SOSv2 va SUSv3 / POSIX 1003.1-2001 da tasvirlangan POSIX.1 standartida bo'lmagan signallarni.
Signal | Qiymat | Harakat | Fikr |
SIGPOLL | Davr | So'zga chiqadigan voqea (Sys V). SIGIO ning sinonimi | |
SIGPROF | 27,27,29 | Davr | Profilni taymer vaqti tugadi |
SIGSYS | 12, -, 12 | Core | Muntazam xatti-harakatlarning yomonligi (SVID) |
SIGTRAP | 5 | Core | Track / breakpoint tuzoq |
SIGURG | 16,23,21 | Ign | Soketda shoshilinch holat (4.2 BSD) |
SIGVTALRM | 26,26,28 | Davr | Virtual budilnik (4.2 BSD) |
SIGXCPU | 24,24,30 | Core | CPU vaqtining chegarasi oshib ketdi (4.2 BSD) |
SIGXFSZ | 25,25,31 | Core | Fayl hajmi chegarasi oshib ketdi (4.2 BSD) |
SIGSYS , SIGXCPU , SIGXFSZ va SIGBUS (SPARC va MIPS tashqari) arxitekturasidagi xatti-harakatlar Linux 2.2 ga qadar va shu jumladan, shu jumladan ( yadrosiz ). (Ba'zi bir boshqa SIGXCPU va SIGXFSZ standart harakati asosiy yadrosiz jarayonni tugatishdir.) Linux 2.4 ushbu signallarga nisbatan POSIX 1003.1-2001 talablariga mos keladi, bu jarayon yadroli damp bilan ishlaydi.
Keyingi boshqa signallar.
Signal | Qiymat | Harakat | Fikr |
SIGEMT | 7, -, 7 | Davr | |
SIGSTKFLT | -, 16, - | Davr | Stokt halokati protsessorga (ishlatilmaydi) |
SIGIO | 23,29,22 | Davr | I / U endi mumkin (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | SIGCHLD uchun sinonim |
SIGPWR | 29,30,19 | Davr | Elektr uzluksizligi (tizim V) |
SIGINFO | 29, -, - | SIGPWR uchun sinonim | |
SIGLOST | -, -, - | Davr | Fayl himoyasi yo'qoldi |
SIGWINCH | 28,28,20 | Ign | Oyna qayta o'lchamlarini uzatish (4,3 UX, Quyosh) |
SIGUNUSED | -, 31, - | Davr | Foydalanilmagan signal (SIGSYS bo'ladi) |
(29- sonli alfada SIGINFO / SIGPWR , lekin SIGLOST- da sparc ).
SIGEMT POSIX 1003.1-2001 da ko'rsatilmaydi, lekin u boshqa bir qancha Unislarda paydo bo'ladi, u erda odatiy ish odatda yadroli dump bilan jarayonni tugatadi.
SIGPWR (POSIX 1003.1-2001 da ko'rsatilmagan) odatda ko'rinadigan boshqa Unis-larda odatiy tarzda e'tiborsiz qoladi.
SIGIO (POSIX 1003.1-2001 da ko'rsatilmagan) bir nechta boshqa Units-da sukut bo'yicha e'tiborsiz hisoblanadi.
Haqiqiy vaqtda signallar
Linux aslida POSIX.4 real-time kengaytmalarida aniqlanganidek, real vaqtda signallarni qo'llab-quvvatlaydi (va endi POSIX 1003.1-2001 da mavjud). Linux 32 ( SIGRTMIN ) dan 63gacha ( SIGRTMAX ) raqamlangan 32 real vaqtda signallarni qo'llab-quvvatlaydi. (Dasturlar doimo SIGRTMIN + n nishoni yordamida real vaqtda signallarga murojaat qilishlari kerak, chunki real vaqt signal raqamlari oralig'i Unislar bo'ylab farq qiladi.)
Standart signallardan farqli o'laroq, real vaqt signallari oldindan belgilanmagan ma'noga ega emas: real vaqtda signallarning butun majmui qo'llaniladigan maqsadlar uchun ishlatilishi mumkin. (Shunga qaramasdan, LinuxThreads ilovasi dastlabki uchta real vaqtda signalni ishlatadi.)
Ishlanmagan real vaqtda signal uchun standart ish qabul qilish jarayonini tugatish hisoblanadi.
Haqiqiy vaqt signallari quyidagilar bilan ajralib turadi:
- Haqiqiy vaqtli signallarning bir nechta nusxalari navbatga qo'yilishi mumkin. Bunga javoban, agar bu signal hozircha bloklangan bo'lsa, standart signalning bir nechta misoli keltirilsa, faqat bitta misol kuyruksa.
- Agar signal sigquue (2) orqali yuborilsa , signal bilan birga beradigan qiymat (yoki tamsayı yoki marker) yuborilishi mumkin. Agar qabul qilish jarayoni SA_SIGACTION bayrog'ini sigaction (2) ga ishlatib, ushbu signal uchun bir dastakchani o'rnatgan bo'lsa, bu ma'lumotni ishlovchiga ikkinchi argument sifatida qabul qilingan siginfo_t strukturasining si_value maydonidan olish mumkin. Bundan tashqari, ushbu strukturaning si_pid va si_uid maydonlari PID va signalni yuboradigan jarayonning haqiqiy foydalanuvchi identifikatorini olish uchun ishlatilishi mumkin.
- Haqiqiy vaqt signallari kafolatlangan tartibda yetkaziladi. Bir xil turdagi bir nechta real vaqtda signallar yuborilgan tartibda yetkaziladi. Jarayonga turli real vaqtda signallar yuborilsa, ular eng past raqamli signal bilan boshlanadi. (Ya'ni, past raqamli signallar ustuvor ahamiyatga ega.)
Agar standart va real vaqt signallari bir jarayon uchun kutilsa, POSIX aniqlanmagan qoldirib, uni birinchi bo'lib etkazib beradi. Linux, ko'plab boshqa dasturlar kabi, bu holatda standart signallarga ustuvor ahamiyatga ega.
POSIX ma'lumotlariga ko'ra, amaliyot jarayonga hech bo'lmaganda _POSIX_SIGQUEUE_MAX (32) real vaqt signallari bilan navbatda bo'lishiga ruxsat berish kerak. Biroq, har bir jarayon uchun cheklovni qo'yishdan ko'ra, Linux barcha jarayonlarga navbatdagi real vaqtda signallarning soniga tizim bo'yicha cheklov qo'yadi.
Ushbu limitni / proc / sys / kernel / rtsig-max fayli orqali o'zgartirilishi mumkin (va imtiyoz bilan). Taqdim etilgan fayl, / proc / sys / kernel / rtsig-max , hozirgi vaqtda qancha real vaqtda signallarning navbatda turganligini aniqlash uchun ishlatilishi mumkin.
MUVOFIQ
POSIX.1
Muhim: shaxsiy kompyuteringizda buyruq qanday ishlatilishini ko'rish uchun man buyrug'ini ( % man ) ishlating.