Merki - Linux / Unix stjórn

Linux styður bæði POSIX áreiðanlegar merki (hér á eftir "staðalmerki") og POSIX rauntíma merki.

Staðalmerki

Linux styður staðalmerkin sem taldar eru upp hér að neðan. Nokkrir merki tölur eru arkitektúr háð, eins og fram kemur í "Value" dálknum. (Þar sem þrír gildi eru gefnar er fyrsta gildið venjulega gild fyrir alfa og sparc, miðjan fyrir i386, ppc og sh, og síðasta fyrir mips.

A - táknar að merki er fjarverandi á samsvarandi arkitektúr.)

Uppfærslur í "Aðgerð" dálki töflunnar tilgreina sjálfgefin aðgerð fyrir merki, sem hér segir:

Hugtakið

Sjálfgefin aðgerð er að segja upp ferlinu.

Ign

Sjálfgefin aðgerð er að hunsa merki.

Kjarni

Sjálfgefin aðgerð er að segja upp ferlið og afrita kjarna.

Hættu

Sjálfgefin aðgerð er að stöðva ferlið.

Fyrst merki sem lýst er í upprunalegu POSIX.1 staðlinum.

Merki Gildi Aðgerð Athugasemd
eða dauða stjórnunarferlis
SIGINT 2 Hugtakið Slökkva á lyklaborðinu
SIGQUIT 3 Kjarni Hætta frá lyklaborðinu
SIGILL 4 Kjarni Ólögleg kennsla
SIGABRT 6 Kjarni Afnema merki frá abort (3)
SIGFPE 8 Kjarni Undantekning flotts
SIGKILL 9 Hugtakið Drepa merki
SIGSEGV 11 Kjarni Ógilt minni tilvísun
SIGPIPE 13 Hugtakið Broken pípa: skrifa til pípa án lesenda
SIGALRM 14 Hugtakið Tímamælismerki frá viðvörun (2)
SIGTERM 15 Hugtakið Uppsagnarmerki
SIGUSR1 30,10,16 Hugtakið Notandi skilgreint merki 1
SIGUSR2 31,12,17 Hugtakið Notandi skilgreint merki 2
SIGCHLD 20,17,18 Ign Barn hætt eða lokað
SIGCONT 19,18,25 Haltu áfram ef þú hættir
SIGSTOP 17,19,23 Hættu Hættu ferli
SIGTSTP 18,20,24 Hættu Hættu að slá inn á tty
SIGTTIN 21,21,26 Hættu tty inntak fyrir bakgrunn ferli
SIGTTOU 22,22,27 Hættu tty framleiðsla fyrir bakgrunn ferli

Merkið SIGKILL og SIGSTOP er ekki hægt að veiða, læst eða hunsa.

Næsta merki eru ekki í POSIX.1 staðlinum en lýst er í SUSv2 og SUSv3 / POSIX 1003.1-2001.

Merki Gildi Aðgerð Athugasemd
SIGPOLL Hugtakið Mælanleg atburður (Sys V). Samheiti SIGIO
SIGPROF 27,27,29 Hugtakið Sjálfvirk tímamörk útrunnið
SIGSYS 12, -, 12 Kjarni Slæm rök til venja (SVID)
SIGTRAP 5 Kjarni Trace / breakpoint gildru
SIGURG 16,23,21 Ign Brýn skilyrði á fals (4,2 BSD)
SIGVTALRM 26,26,28 Hugtakið Raunverulegur vekjaraklukka (4,2 BSD)
SIGXCPU 24,24,30 Kjarni Tímamörk CPU yfir (4.2 BSD)
SIGXFSZ 25,25,31 Kjarni Skráarstærðarmörk (4.2 BSD)

Allt að og með Linux 2.2, sjálfgefna hegðun SIGSYS , SIGXCPU , SIGXFSZ og (á öðrum arkitektúr en SPARC og MIPS) SIGBUS var að segja upp ferlinu (án kjarna sorphaugur). (Á sumum öðrum Unices er sjálfgefið aðgerð fyrir SIGXCPU og SIGXFSZ að ljúka ferlinu án kjarna sorphaugs.) Linux 2.4 uppfyllir kröfur POSIX 1003.1-2001 fyrir þessi merki og lýkur ferlinu með kjarna sorphaug.

Næsta ýmis önnur merki.

Merki Gildi Aðgerð Athugasemd
SIGEMT 7, -, 7 Hugtakið
SIGSTKFLT -, 16, - Hugtakið Stakk sök á coprocessor (ónotaður)
SIGIO 23,29,22 Hugtakið Ég / O núna mögulegt (4,2 BSD)
SIGCLD -, -, 18 Ign Samheiti fyrir SIGCHLD
SIGPWR 29,30,19 Hugtakið Rásbilun (kerfi V)
SIGINFO 29, -, - Samheiti fyrir SIGPWR
SIGLOST -, -, - Hugtakið Skrá læsa glataður
SIGWINCH 28,28,20 Ign Gluggastærð resize merki (4.3 BSD, Sun)
SIGUNUSED -, 31, - Hugtakið Ónotað merki (verður SIGSYS)

(Signal 29 er SIGINFO / SIGPWR á alfa en SIGLOST á sparc.)

SIGEMT er ekki tilgreint í POSIX 1003.1-2001, en aldrei kemur fram á flestum öðrum Unices, þar sem vanræksla er venjulega að ljúka ferlinu með kjarna sorphaug.

SIGPWR (sem er ekki tilgreint í POSIX 1003.1-2001) er yfirleitt hunsuð sem sjálfgefið á þessum öðrum Unices þar sem það birtist.

SIGIO (sem er ekki tilgreint í POSIX 1003.1-2001) er hunsað sjálfgefið á nokkrum öðrum Unices.

Rauntíma merki

Linux styður rauntíma merki eins og upphaflega skilgreint í POSIX.4 rauntíma viðbótunum (og er nú með í POSIX 1003.1-2001). Linux styður 32 rauntíma merki, talin úr 32 ( SIGRTMIN ) í 63 ( SIGRTMAX ). (Forrit skulu alltaf vísa til rauntíma merkja með merkingu SIGRTMIN + n, þar sem fjöldi rauntíma merkjanna er mismunandi á milli Unices.)

Ólíkt staðalmerkjum hafa rauntímarit ekki neina fyrirfram skilgreindar merkingar: Allt sett af rauntíma merkjum er hægt að nota til að skilgreina forrit. (Athugaðu þó að LinuxThreads framkvæmdin notar fyrstu þrjá rauntíma merkin.)

Sjálfgefin aðgerð fyrir óviðráðanlegt rauntíma merki er að segja upp móttökuferlinu.

Rauntímamerki eru áberandi af eftirfarandi:

  1. Mörg dæmi um rauntíma merki geta verið í biðstöðu. Hins vegar, ef mörg dæmi um stöðluð merki eru afhent meðan þessi merki er lokað, þá er aðeins eitt dæmi í biðstöðu.
  2. Ef merki er sent með því að nota sigqueue (2) er hægt að senda meðfylgjandi gildi (annaðhvort heiltala eða bendilinn) með merki. Ef móttökuferlið stofnar handhafa fyrir þetta merki með því að nota SA_SIGACTION fánann við sigaction (2) þá getur það fengið þessar upplýsingar í gegnum si_value reitinn í siginfo_t uppbyggingunni sem liðið er sem seinni rökin til umsjónarmanns. Enn fremur er hægt að nota si_pid og si_uid sviðin í þessari uppbyggingu til að fá PID og raunveruleg notandanafn ferilsins sem sendir merkiið.
  3. Rauntímamerki eru afhent í tryggðri röð. Margfeldi rauntíma merki af sömu gerð eru afhent í þeirri röð sem þau voru send. Ef mismunandi rauntíma merki eru send til ferlis eru þau afhent með því að byrja með lægsta númerið. (Þ.e. Lágarnúmer merki eru í forgang.)

Ef bæði stöðluðu og rauntíma merki eru í bið fyrir ferli, skilur POSIX það ótilgreint sem er fyrst afhent. Linux, eins og margir aðrir framkvæmdarráðstafanir, gefur forgang staðlaða merki í þessu tilfelli.

Samkvæmt POSIX ætti framkvæmd að leyfa að minnsta kosti _POSIX_SIGQUEUE_MAX (32) rauntíma merki í biðstöðu í ferli. Hins vegar leggur Linux, í stað þess að setja viðmiðunarmörk fyrir hverja vinnslu, kerfisbundið takmörk á fjölda biðröð rauntíma merki fyrir öll ferli.

Þessi takmörk er hægt að skoða (og með forréttindi) breytt með / proc / sys / kernel / rtsig-max skrá. Tengd skrá, / proc / sys / kernel / rtsig-max , er hægt að nota til að finna út hversu mörg rauntíma merki eru í biðstöðu.

SAMÞYKKI TIL

POSIX.1

Mikilvægt: Notaðu stjórn mannsins ( % maður ) til að sjá hvernig stjórn er notuð á tölvunni þinni.