Sein - Linux / Unix Command

Linux ondersteun beide POSIX betroubare seine (hierna "standaardseine") en POSIX real-time seine.

Standaardseine

Linux ondersteun die standaard seine wat hieronder gelys word. Verskeie seingetalle is argitektuur afhanklik, soos aangedui in die "Waarde" kolom. (Waar drie waardes gegee word, is die eerste een gewoonlik geldig vir alfa en sparc, die middelste een vir i386, ppc en sh, en die laaste vir mips.

A - dui aan dat 'n sein afwesig is op die ooreenstemmende argitektuur.)

Die inskrywings in die kolom 'Aksie' in die tabel spesifiseer die standaardaksie vir die sein, soos volg:

termyn

Standaard aksie is om die proses te beëindig.

IGN

Standaard aksie is om die sein te ignoreer.

Core

Verstekoptrede is om die proses te beëindig en kern te dump.

stop

Standaard aksie is om die proses te stop.

Eerstens die seine wat in die oorspronklike POSIX.1 standaard beskryf word.

sein waarde aksie kommentaar
of die dood van die beheerproses
SIGINT 2 termyn Onderbreek van sleutelbord
SIGQUIT 3 Core Hou van sleutelbord af
SIGILL 4 Core Onwettige Onderrig
SIGABRT 6 Core Ontbreek sein van aborteer (3)
SIGFPE 8 Core Vlotpunt uitsondering
SIGKILL 9 termyn Doodsein
SIGSEGV 11 Core Ongeldige geheueverwysing
SIGPIPE 13 termyn Gebroke pyp: skryf aan pyp met geen lesers nie
SIGALRM 14 termyn Timer sein vanaf alarm (2)
SIGTERM 15 termyn Beëindiging sein
SIGUSR1 30,10,16 termyn Gebruiker-gedefinieerde sein 1
SIGUSR2 31,12,17 termyn Gebruiker-gedefinieerde sein 2
SIGCHLD 20,17,18 IGN Kind gestop of beëindig
SIGCONT 19,18,25 Gaan voort as gestop
SIGSTOP 17,19,23 stop Stop proses
SIGTSTP 18,20,24 stop Stop op tty getik
SIGTTIN 21,21,26 stop tty insette vir agtergrond proses
SIGTTOU 22,22,27 stop tty-uitset vir agtergrondproses

Die seine SIGKILL en SIGSTOP kan nie gevang, geblokkeer of geïgnoreer word nie.

Volgende die seine nie in die POSIX.1 standaard nie, maar beskryf in SUSv2 en SUSv3 / POSIX 1003.1-2001.

sein waarde aksie kommentaar
SIGPOLL termyn Pollable gebeurtenis (Sys V). Sinoniem van SIGIO
SIGPROF 27,27,29 termyn Profileringstydperk het verstryk
SIGSYS 12, - 12 Core Slegte argument vir roetine (SVID)
SIGTRAP 5 Core Trace / breakpoint trap
SIGURG 16,23,21 IGN Dringende toestand op sok (4.2 BSD)
SIGVTALRM 26,26,28 termyn Virtuele wekker (4,2 BSD)
SIGXCPU 24,24,30 Core CPU tydsbeperking oorskry (4.2 BSD)
SIGXFSZ 25,25,31 Core Lêergrootte limiet oorskry (4.2 BSD)

Tot en met Linux 2.2, sou die standaard gedrag vir SIGSYS , SIGXCPU , SIGXFSZ en (op ander argitektuur as SPARC en MIPS) die proses beëindig (sonder 'n kerndump ). (Op sommige ander Unices is die standaard aksie vir SIGXCPU en SIGXFSZ die proses sonder 'n kerndump te beëindig.) Linux 2.4 voldoen aan die POSIX 1003.1-2001 vereistes vir hierdie seine, en die proses word afgesluit met 'n kerndump.

Volgende verskeie ander seine.

sein waarde aksie kommentaar
SIGEMT 7, -, 7 termyn
SIGSTKFLT - 16, - termyn Stack fout op coprocessor (ongebruikte)
SIGIO 23,29,22 termyn Ek / O nou moontlik (4,2 BSD)
SIGCLD -, -, 18 IGN 'N sinoniem vir SIGCHLD
SIGPWR 29,30,19 termyn Kragonderbreking (Stelsel V)
SIGINFO 29, -, - 'N Sinoniem vir SIGPWR
SIGLOST -, -, - termyn Lêervergrendeling verloor
SIGWINCH 28,28,20 IGN Venster resize sein (4.3 BSD, Sun)
SIGUNUSED - 31 - termyn Ongebruikte sein (sal SIGSYS wees)

(Sein 29 is SIGINFO / SIGPWR op 'n alfa maar SIGLOST op 'n sparc.)

SIGEMT is nie gespesifiseer in POSIX 1003.1-2001 nie, maar onnodig verskyn op die meeste ander Unices, waar die verstekaksie gewoonlik die proses met 'n kern dump beëindig.

SIGPWR (wat nie in POSIX 1003.1-2001 gespesifiseer word nie) word gewoonlik verontagsaam op die ander Unices waar dit voorkom.

SIGIO (wat nie in POSIX 1003.1-2001 gespesifiseer word nie) word standaard verontagsaam op verskeie ander Unices.

Real-time Signals

Linux ondersteun real-time seine soos oorspronklik gedefinieer in die POSIX.4 real-time uitbreidings (en nou ingesluit in POSIX 1003.1-2001). Linux ondersteun 32 real-time seine, genommer van 32 ( SIGRTMIN ) tot 63 ( SIGRTMAX ). (Programme moet altyd verwys na real-time seine deur gebruik te maak van notasie SIGRTMIN + n, aangesien die reeks realtime seingetalle wissel oor Unices.)

In teenstelling met standaard seine, real-time seine het geen voorafbepaalde betekenisse nie: die hele stel real-time seine kan gebruik word vir toepassing-gedefinieerde doeleindes. (Let egter daarop dat die LinuxThreads-implementering die eerste drie real-time seine gebruik.)

Die standaardaksie vir 'n onbehandelde real-time sein is om die ontvangingsproses te beëindig.

Real-time seine word onderskei deur die volgende:

  1. Meervoudige instansies van real-time seine kan in die ry gestel word. As daar egter verskeie gevalle van 'n standaardsein gelewer word terwyl die sein tans geblokkeer word, is slegs een voorbeeld in die ry.
  2. As die sein gestuur word met sigqueue (2), kan 'n meegaande waarde (óf 'n heelgetal of 'n wyser) met die sein gestuur word. As die ontvangsproses 'n hanteerder vir hierdie sein opstel met die SA_SIGACTION- vlag na sigaksie (2), kan dit hierdie data verkry via die si_value- veld van die siginfo_t- struktuur wat as die tweede argument aan die hanteerder geslaag is. Verder kan die si_pid en si_uid velde van hierdie struktuur gebruik word om die PID en werklike gebruikers ID van die proses wat die sein stuur, te verkry.
  3. Real-time seine word in 'n gewaarborgde bestelling gelewer. Meervoudige real-time seine van dieselfde tipe word gelewer in die volgorde wat hulle gestuur is. As verskillende real-time seine na 'n proses gestuur word, word hulle afgelewer met die laagste genommerde sein. (Dws, lae genommerde seine het die hoogste prioriteit.)

As beide standaard en real-time seine vir 'n proses hang, bly POSIX ongespesifiseerde wat eers afgelewer word. Linux, soos baie ander implementasies, gee voorkeur aan standaardseine in hierdie geval.

Volgens POSIX moet 'n implementering ten minste _POSIX_SIGQUEUE_MAX (32) real-time seine toelaat om in 'n proses te wag. In plaas daarvan om 'n per-proses limiet te plaas, lê Linux 'n stelsel wye limiet in vir die aantal wagtydse realtime seine vir alle prosesse.

Hierdie limiet kan aangevra word (en met voorreg) verander via die / proc / sys / kernel / rtsig-maksimum lêer. 'N Verwante lêer, / proc / sys / kernel / rtsig-max , kan gebruik word om uit te vind hoeveel real-time seine tans in die ry is.

OORFORMERING TOT

POSIX.1

Belangrik: Gebruik die man opdrag ( % man ) om te sien hoe 'n opdrag op u rekenaar gebruik word.