Linux stipet sawol POSIX betroubere sinjalen (hjirnei "standert sinjalen") en POSIX-eigners.
Standert sinjalen
Linux stipet de hjirboppe neamde standertignalen. Ferskillige sinne nûmers binne arsjitektuerôfhinklik, lykas yn 'e "Value"-kolom oanjûn. (Wêr't trije wearden oanbean wurde, is de earste normaal jildich foar alpha en sparc, de midden foar i386, ppc en sh, en de lêste foar mips.
A - betsjuttet dat in sinjaal ûntbrekt is op 'e oerienkommende arsjitektuer.)
De yngongen yn 'e kategory "Aktive" kolom fan' e tabel befetsje de standertaksje foar it sinjaal as folgjend:
Term
Standert aksje is om it proses te stopjen.
Ign
Standert aksje is om it sinjaal te bewarjen.
Kearn
Standert aksje is om it proses- en dump-kearn te begjinnen.
Ophâlde
Standert aksje is om it proses te stopjen.
Earst wurde de sinjalen beskreaun yn 'e orizjinele POSIX.1 standert.
Sinjaal | Wearde | Aksje | Comment |
of de dea fan it kontrolearjen fan proses | |||
SIGINT | 2 | Term | Ynterfal fan it toetseboerd |
SIGQUIT | 3 | Kearn | Fuortsmite fan it toetseboerd |
SIGILL | 4 | Kearn | Unjildige ynstruksje |
SIGABRT | 6 | Kearn | Abonnees sinjaal fan ôfbrutsen (3) |
SIGFPE | 8 | Kearn | Floating point exception |
SIGKILL | 9 | Term | Kill sinjaal |
SIGSEGV | 11 | Kearn | Unjildich memoryadres |
SIGPIPE | 13 | Term | Broken pipe: skriuwe nei pipe mei gjin lêzers |
SIGALRM | 14 | Term | Timer-sinjaal fan alarm (2) |
SIGTERM | 15 | Term | Terminalsignale |
SIGUSR1 | 30,10,16 | Term | Brûker foar bepaalde sinjaal 1 |
SIGUSR2 | 31,12,17 | Term | Brûker foar bepaalde sinjaal 2 |
SIGCHLD | 20,17,18 | Ign | Bern stopp of ôfsluten |
SIGCONT | 19,18,25 | Trochgean as it stoppe is | |
SIGSTOP | 17,19,23 | Ophâlde | Stopproses |
SIGTSTP | 18,20,24 | Ophâlde | Stopje typ op tty |
SIGTTIN | 21,21,26 | Ophâlde | tty ynput foar eftergrûnproses |
SIGTTOU | 22,22,27 | Ophâlde | tty-útfier foar eftergrûnproses |
De sinjalen SIGKILL en SIGSTOP kinne net fêst, blokkearre, of net bewarre wurde.
Neidat de sinjalen net yn it POSIX.1 standert mar beskreaun binne yn SUSv2 en SUSv3 / POSIX 1003.1-2001.
Sinjaal | Wearde | Aksje | Comment |
SIGPOLL | Term | Stoflike barren (Sys V). Synonym fan SIGIO | |
SIGPROF | 27,27,29 | Term | De timearing fan profilearjen is ferrûn |
SIGSYS | 12, -, 12 | Kearn | Bad argumint foar routine (SVID) |
SIGTRAP | 5 | Kearn | Trace / breakpoint trap |
SIGURG | 16,23,21 | Ign | Drokte betingst op socket (4.2 BSD) |
SIGVTALRM | 26,26,28 | Term | Virtual alarmklok (4.2 BSD) |
SIGXCPU | 24,24,30 | Kearn | CPU-tiidlimyt grutter (4.2 BSD) |
SIGXFSZ | 25,25,31 | Kearn | Triemgrutte beheind oerienkomt (4.2 BSD) |
Oant en ynklusyf Linux 2.2, it standertgedrach foar SIGSYS , SIGXCPU , SIGXFSZ , en (op oare arsjitekten as SPARC en MIPS) SIGBUS moast it proses ôfslute (sûnder kearndump ). (Op guon oare Uni's is it standertaksje foar SIGXCPU en SIGXFSZ it proses te stopjen sûnder in kearndump .) Linux 2.4 konformearret mei de easken fan POSIX 1003.1-2001 foar dizze sinjalen, it ôfsluten fan it proses mei in core dump.
Folgje ferskate oare sinjalen.
Sinjaal | Wearde | Aksje | Comment |
SIGEMT | 7, -, 7 | Term | |
SIGSTKFLT | -, 16, - | Term | Stapfloei op coprozessor (net brûkte) |
SIGIO | 23,29,22 | Term | I / O kin no (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | In synonym foar SIGCHLD |
SIGPWR | 29,30,19 | Term | Power failure (systeem V) |
SIGINFO | 29, -, - | In synonym foar SIGPWR | |
SIGLOST | -, -, - | Term | Triem ferpleatse ferlern |
SIGWINCH | 28,28,20 | Ign | Finstergrutte sesje (4.3 BSD, Sun) |
SIGUNUSED | -, 31, - | Term | Unbepaald sinjaal (sil SIGSYS wêze) |
(Signal 29 is SIGINFO / SIGPWR op in alpha, mar SIGLOST op in sparc.)
SIGEMT is net oanjûn yn POSIX 1003.1-2001, mar neverthless ferskynt op de measte oare Uni's, wêrtroch syn standertaksje typysk it proses ôfslute mei in core dump.
SIGPWR (dy't net ynfierd is yn POSIX 1003.1-2001) wurdt normaal net trochgeand troch dizze oare Uniyen wêr't it ferskynt.
SIGIO (wat net spesifisearre is yn POSIX 1003.1-2001) wurdt troch standert op inkele oare Uniyen standert ignorearre.
Real-time-sinjalen
Linux stipet real-time-sinjalen as oarspronklik yn 'e POSIX.4-realisaasjegongingen definiearre (en no yn POSIX 1003.1-2001 opnaam). Linux stipet 32 echt- timigensignalen , nûmere fan 32 ( SIGRTMIN ) oant 63 ( SIGRTMAX ). (Programma's moatte altyd referinsjes op echte-sinjalen brûke mei help fan notysje SIGRTMIN + n, omdat it berik fan eignersnûmeren ferskaft tusken Unices.)
Oars as standert sinjalen hawwe echte-sinjalen gjin foarôfgeande betsjuttingen: de folsleine set fan echte-sinjalen kin brûkt wurde foar tapassing fan tapassing. (Tink derom dat de ynfier fan LinuxThreads de earste trije real-time-sinjalen brûke.)
De standertaksje foar in net-behannele real-time-sinjaal is om it ûntfangende proses ôf te sluten.
Real-time-sinjalen ûnderskiede mei de neikommende:
- Meardere eksemplaren fan echt-timeline-sinjalen kinne wachtrigen wurde. Hjirtroch kinne as meardere eksimplaren fan in standert signale levere wurde, wylst it sinjaal op it stuit blokkearre wurdt, dan wurdt allinich ien eksimplaar wacht.
- As it sinjaal ferstjoerd wurdt mei sigqueue (2), kin in begeliedende wearde (sawol in inkel of in pointer) mei it sinjaal ferstjoere. As de ûntfangende proseduere in handler foar dit sinjaal brûke mei de flagge SA_SIGACTION foar sigraasje (2) dan kin dizze gegevens fia it si_value fjild fan 'e siginfo_t- struktuer krije dat it twadde argumint foar de handler trochjûn. Fierder kinne de gebieten fan si_pid en si_uid fan dizze struktuer brûkt wurde om de PID- en echte brûkerside fan it proses te krijen fan it sinjaal.
- Real-time-sinjalen wurde levere yn in garandearre oarder. Mearfâldige echt-timsignalen fan deselde type wurde levere yn 'e oarder dy't se stjoerd wurde. As ferskate echte-sinjale sinnen nei in proses stjoerd wurde, wurde se begûn mei it leechste nûmere sinjaal. (Ie, leech-nûmere sinjalen hawwe de heechste prioriteit.)
As beide standert- en eignere-sinjalen foar in proses oandien binne, lit POSIX it net oantsjutte dat earst levere wurdt. Linux, lykas in protte oare ymplementaasjes, jout prioriteit ta standert sinjalen yn dit gefal.
Neffens POSIX moat in útfiering op syn minst _POSIX_SIGQUEUE_MAX (32) eigners wêze om tagong te wêzen foar in proses. Om't er lykwols in per-proseslimite ynstelle, hat Linux in systeme-wide begryp op it tal wachtrige echte-sinjalen foar alle prosessen.
Dizze limyt kin besjoen wurde (en mei privileezje) feroare troch de triem / proc / sys / kernel / rtsig-max . In relatearre triem, / proc / sys / kernel / rtsig-max , kin brûkt wurde om te finen hoefolle echte sinjalen op 'e nij wachtsje.
CONFORMING TO
POSIX.1
Wichtich: Brûk de manbehearder ( % man ) om te sjen hoe't in kommando brûkt wurdt op jo bepaalde komputer.