Linux inasaidia ishara zote mbili za kuaminika za POSIX (hapa "ishara za kawaida") na POSIX halisi wakati wa ishara.
Ishara za kawaida
Linux inasaidia ishara ya kawaida iliyoorodheshwa hapa chini. Nambari kadhaa za ishara ni tegemezi wa usanifu, kama ilivyoonyeshwa kwenye safu ya "Thamani". (Ambapo maadili matatu hutolewa, kwanza ni ya kawaida kwa alpha na sparc, moja kati ya i386, ppc na sh, na mwisho wa mips.
A - inaashiria kuwa ishara haipo kwenye usanifu unaohusiana.)
Vipengele katika safu ya "Action" ya meza hutaja hatua ya default kwa ishara, ifuatavyo:
Muda
Hitilafu ya hatua ni kusitisha mchakato.
Ign
Hitilafu ya hatua ni kupuuza ishara.
Msingi
Hitilafu ya kusitisha ni kusitisha mchakato na kutupa msingi.
Acha
Hitilafu ya hatua ni kuacha mchakato.
Kwanza ishara zilizoelezwa katika kiwango cha awali cha POSIX.1.
Ishara | Thamani | Hatua | Maoni |
au kifo cha mchakato wa kudhibiti | |||
SIGINT | 2 | Muda | Kuingilia kutoka kwenye kibodi |
SIGQUIT | 3 | Msingi | Quka kutoka kwenye kibodi |
SIGILL | 4 | Msingi | Maagizo yasiyo ya sheria |
SIGABRT | 6 | Msingi | Ondoa ishara kutoka kwa kuacha (3) |
SIGFPE | 8 | Msingi | Ufafanuzi wa hatua ya chini |
SIGKILL | 9 | Muda | Ua ishara |
SIGSEGV | 11 | Msingi | Kumbukumbu isiyo sahihi ya kumbukumbu |
SIGPIPE | 13 | Muda | Bomba iliyovunja: kuandika bomba bila wasomaji |
SIGALRM | 14 | Muda | Ishara ya muda ya kengele (2) |
SIGTERM | 15 | Muda | Ishara ya kukomesha |
SIGUSR1 | 30,10,16 | Muda | Ishara iliyofafanuliwa na mtumiaji 1 |
SIGUSR2 | 31,12,17 | Muda | Ishara iliyofafanuliwa na mtumiaji 2 |
SIGCHLD | 20,17,18 | Ign | Mtoto amesimamisha au amekamilika |
SIGCONT | 19,18,25 | Endelea ikiwa umeacha | |
SIGSTOP | 17,19,23 | Acha | Acha mchakato |
SIGTSTP | 18,20,24 | Acha | Acha typed katika tty |
SIGTTIN | 21,21,26 | Acha | pembejeo kwa mchakato wa nyuma |
SIGTTOU | 22,22,27 | Acha | tty pato kwa mchakato wa nyuma |
Ishara SIGKILL na SIGSTOP haziwezi kuchukuliwa, kuzuiwa, au kupuuzwa.
Kisha ishara sio kwenye kiwango cha POSIX.1 lakini imeelezwa katika SUSv2 na SUSv3 / POSIX 1003.1-2001.
Ishara | Thamani | Hatua | Maoni |
SIGPOLL | Muda | Tukio la kupendeza (Sys V). Sanjina ya SIGIO | |
SIGPROF | 27,27,29 | Muda | Ufafanuzi wa timer umekamilika |
SIGSYS | 12, -, 12 | Msingi | Hoja mbaya kwa kawaida (SVID) |
SIGTRAP | 5 | Msingi | Mtego wa kufuatilia / kuvunja |
SIGURG | 16,23,21 | Ign | Hali ya haraka juu ya tundu (4.2 BSD) |
SIGVTALRM | 26,26,28 | Muda | Saa ya saa halisi (4.2 BSD) |
SIGXCPU | 24,24,30 | Msingi | Muda wa muda wa CPU ulizidi (4.2 BSD) |
SIGXFSZ | 25,25,31 | Msingi | Faili ya ukubwa wa faili imepita (4.2 BSD) |
Hadi na ikiwa ni pamoja na Linux 2.2, tabia ya default kwa SIGSYS , SIGXCPU , SIGXFSZ , na (juu ya mbinu za usanifu badala ya SPARC na MIPS) SIGBUS ilikuwa kukomesha mchakato (bila uharibifu wa msingi). (Kwa Unices nyingine, hatua ya default kwa SIGXCPU na SIGXFSZ ni kukomesha mchakato bila uharibifu wa msingi.) Linux 2.4 inakabiliana na mahitaji ya POSIX 1003.1-2001 kwa ishara hizi, kukomesha mchakato kwa kutupa msingi.
Next ishara nyingine nyingine.
Ishara | Thamani | Hatua | Maoni |
SIGEMT | 7, -, 7 | Muda | |
SIGSTKFLT | -, 16, - | Muda | Weka kosa juu ya mchezaji (hakutumiwa) |
SIGIO | 23,29,22 | Muda | I / O sasa inawezekana (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | Sawa ya SIGCHLD |
SIGPWR | 29,30,19 | Muda | Kushindwa kwa nguvu (Mfumo wa V) |
SIGINFO | 29, -, - | Mfano wa SIGPWR | |
SIGLOST | -, -, - | Muda | Fungua safu iliyopotea |
SIGWINCH | 28,28,20 | Ign | Ishara resize ya dirisha (4.3 BSD, Sun) |
SIGUNUSED | -, 31, - | Muda | Ishara isiyoyotumiwa (itakuwa SIGSYS) |
(Ishara ya 29 ni SIGINFO / SIGPWR kwenye alpha lakini SIGLOST kwenye sparc.)
SIGEMT haijasemwa katika POSIX 1003.1-2001, lakini hakuna maana inaonekana kwenye Unices nyingine nyingi, ambapo hatua yake ya kawaida ni kusitisha mchakato kwa kutupa msingi.
SIGPWR (ambayo si maalum katika POSIX 1003.1-2001) ni kawaida kupuuzwa na default juu ya wale Unices nyingine ambapo inaonekana.
SIGIO (ambayo sio maalum katika POSIX 1003.1-2001) inapuuzwa na default kwenye Unices nyingine kadhaa.
Ishara za muda halisi
Linux inasaidia ishara za muda halisi kama ilivyoelezwa awali katika upanuzi halisi wa muda wa POSIX.4 (na sasa umejumuishwa katika POSIX 1003.1-2001). Linux inasaidia ishara za muda halisi 32, zilizohesabiwa kutoka 32 ( SIGRTMIN ) hadi 63 ( SIGRTMAX ). (Programu zinapaswa daima kutaja ishara za muda halisi kwa kutumia SIGRTMIN + n, kwa kuwa idadi ya nambari za ishara ya wakati halisi inatofautiana katika Unices.)
Tofauti na ishara za kawaida, ishara za muda halisi hazina maana zilizoelezewa: seti nzima ya ishara za wakati halisi inaweza kutumika kwa madhumuni yaliyoelezwa na maombi. (Angalia, hata hivyo, kwamba utekelezaji wa LinuxThreads hutumia ishara tatu za kwanza za muda halisi.)
Hatua ya default kwa ishara isiyosaidiwa ya muda halisi ni kusitisha mchakato wa kupokea.
Ishara za muda halisi zinajulikana na zifuatazo:
- Matukio mengi ya ishara ya wakati halisi yanaweza kuwa na foleni. Kwa kulinganisha, ikiwa matukio mbalimbali ya ishara ya kawaida hutolewa wakati ishara hiyo imefungwa kwa sasa, basi tukio moja tu linawekwa.
- Ikiwa ishara inatumwa kwa kutumia sigueue (2), thamani ya kuandamana (ama integer au pointer) inaweza kutumwa kwa ishara. Ikiwa mchakato wa kupokea unatoa msimamizi kwa ishara hii kwa kutumia bendera ya SA_SIGACTION kwa sigaction (2) basi inaweza kupata data hii kupitia shamba la si_value ya muundo wa siginfo_t kupita kama hoja ya pili kwa msimamizi. Zaidi ya hayo, mashamba ya si_pid na si_uid ya muundo huu yanaweza kutumika kupata PID na ID halisi ya mtumiaji wa mchakato kutuma ishara.
- Ishara za muda halisi zinatolewa kwa amri iliyohakikishiwa. Ishara nyingi za muda halisi za aina hiyo zinatolewa kwa utaratibu waliotumwa. Ikiwa alama tofauti za wakati halisi zinatumwa kwa mchakato, zinawasilishwa kwa kuanzia na ishara iliyo chini kabisa. (Ye, ishara za chini zilizo na namba zina kipaumbele zaidi.)
Ikiwa ishara zote za kawaida na za muda halisi zinasubiri kwa mchakato, POSIX inakuacha isiyojulikana ambayo hutolewa kwanza. Linux, kama utekelezaji mingine mingi, inatoa kipaumbele kwa ishara za kawaida katika kesi hii.
Kwa mujibu wa POSIX, utekelezaji unapaswa kibali angalau ishara ya POSIX_SIGQUEUE_MAX (32) halisi ya wakati ili kuwekwa nguzo kwenye mchakato. Hata hivyo, badala ya kuweka kikomo cha kila mchakato, Linux inaweka kikomo cha mpangilio wa mfumo juu ya idadi ya ishara ya muda halisi iliyopangwa kwa mchakato wote.
Kikomo hiki kinaweza kutazamwa (na kwa hiari) kilibadilishwa kupitia faili ya / proc / sys / kernel / rtsig-max . Faili inayohusiana, / proc / sys / kernel / rtsig-max , inaweza kutumiwa kujua ni ngapi ishara za muda halisi zilizowekwa sasa.
KUFANYA NA
POSIX.1
Muhimu: Tumia amri ya mtu ( % mtu ) ili kuona jinsi amri hutumiwa kwenye kompyuta yako fulani.