Ishara - Linux / Amri ya Unix

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:

  1. 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.
  2. 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.
  3. 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.