A Linux támogatja mind a POSIX megbízható jeleket (a továbbiakban: "szabványos jelek") és POSIX valós idejű jeleket.
Szabványos jelek
A Linux az alább felsorolt szabványos jeleket támogatja. Több jelszám az architektúra függvénye, amint az az "Érték" oszlopban látható. (Ha három értéket adunk meg, az első általában az alfa és a sparc esetében érvényes, az i386, a ppc és a sh pedig a középső, az utolsó a mips esetében.
A - jelzi, hogy hiányzik egy jel a megfelelő architektúrán.)
A táblázat "Művelet" oszlopában szereplő bejegyzések a következőképpen határozzák meg a jelre vonatkozó alapértelmezett műveletet:
kifejezés
Az alapértelmezett művelet a folyamat leállítása.
Ign
Az alapértelmezett művelet az, hogy figyelmen kívül hagyja a jelet.
Mag
Az alapértelmezett művelet a folyamat lebontása és a dump core.
Állj meg
Az alapértelmezett művelet a folyamat leállítása.
Először az eredeti POSIX.1 szabványban leírt jeleket.
Jel | Érték | Akció | Megjegyzés |
vagy az ellenőrzési folyamat halála | |||
SIGINT | 2 | kifejezés | Megszakítás a billentyűzetről |
SIGQUIT | 3 | Mag | Lépjen ki a billentyűzetről |
SIGILL | 4 | Mag | Illegális utasítás |
SIGABRT | 6 | Mag | Megszakítsák a jelzést abortól (3) |
SIGFPE | 8 | Mag | Lebegőpontos kivétel |
SIGKILL | 9 | kifejezés | Ölj meg |
SIGSEGV | 11 | Mag | Érvénytelen memória-hivatkozás |
SIGPIPE | 13 | kifejezés | Törött cső: írjon csőre olvasók nélkül |
SIGALRM | 14 | kifejezés | Időzítő jel riasztásból (2) |
SIGTERM | 15 | kifejezés | Megszakítási jel |
SIGUSR1 | 30,10,16 | kifejezés | Felhasználó által definiált jel 1 |
SIGUSR2 | 31,12,17 | kifejezés | Felhasználó által definiált jel 2 |
SIGCHLD | 20,17,18 | Ign | A gyermek megállt vagy megszűnt |
SIGCONT | 19,18,25 | Folytassa ha leállt | |
SIGSTOP | 17,19,23 | Állj meg | Állítsa le a folyamatot |
SIGTSTP | 18,20,24 | Állj meg | Lépjen be a tty |
SIGTTIN | 21,21,26 | Állj meg | tty bemenet a háttérfolyamathoz |
SIGTTOU | 22,22,27 | Állj meg | tty output a háttérfolyamathoz |
A SIGKILL és a SIGSTOP jeleket nem lehet elkapni, blokkolni vagy figyelmen kívül hagyni.
Ezután a jeleket nem a POSIX.1 szabványban, hanem a SUSv2 és a SUSv3 / POSIX 1003.1-2001-ben írják le.
Jel | Érték | Akció | Megjegyzés |
SIGPOLL | kifejezés | Pollable esemény (Sys V). A SIGIO szinonimája | |
SIGPROF | 27,27,29 | kifejezés | A profilozási időzítő lejárt |
SIGSYS | 12, -, 12 | Mag | Rossz feladat (SVID) |
SIGTRAP | 5 | Mag | Trace / breakpoint csapda |
SIGURG | 16,23,21 | Ign | Sürgős állapot az aljzaton (4.2 BSD) |
SIGVTALRM | 26,26,28 | kifejezés | Virtuális ébresztőóra (4.2 BSD) |
SIGXCPU | 24,24,30 | Mag | CPU időkorlát túllépte (4.2 BSD) |
SIGXFSZ | 25,25,31 | Mag | A fájlméretkorlát túllépte (4.2 BSD) |
A SIGSYS , a SIGXCPU , a SIGXFSZ és (a SPARC és a MIPS-n kívüli architektúrák esetében) a Linux 2.2-hez képest a SIGBUS alapértelmezett magatartása a folyamat lezárása ( magtömlő nélkül). (Néhány más Unices esetében a SIGXCPU és a SIGXFSZ alapértelmezett művelete az eljárás lezárása a core dump nélkül.) A Linux 2.4 megfelel a POSIX 1003.1-2001 követelményeknek ezekhez a jelekhez, és lezárja a folyamatot egy alapvető dumpel.
Következő különböző egyéb jelek.
Jel | Érték | Akció | Megjegyzés |
SIGEMT | 7, -, 7 | kifejezés | |
SIGSTKFLT | - 16, - | kifejezés | Stack hiba a koprocesszoron (fel nem használt) |
SIGIO | 23,29,22 | kifejezés | I / O most lehetséges (4.2 BSD) |
SIGCLD | -, -, 18 | Ign | A SIGCHLD szinonimája |
SIGPWR | 29,30,19 | kifejezés | Áramkimaradás (V rendszer) |
SIGINFO | 29, -, - | A SIGPWR szinonimája | |
SIGLOST | -, -, - | kifejezés | A fájlzár elveszett |
SIGWINCH | 28,28,20 | Ign | Az ablak átméretezése (4.3 BSD, Sun) |
SIGUNUSED | - 31, - | kifejezés | Fel nem használt jel (SIGSYS lesz) |
(A 29. jel a SIGINFO / SIGPWR egy alfa, de a SIGLOST egy sparc-on.)
A SIGEMT nincs megadva a POSIX 1003.1-2001 verziónál, de a legtöbb más Unices esetében mindig jelenik meg, ahol az alapértelmezett művelet jellemzően a folyamatot coredump-el zárja.
A SIGPWR (amely a POSIX 1003.1-2001-ben nincs megadva) alapértelmezés szerint általában figyelmen kívül hagyja azokat a többi Unices-et, ahol megjelenik.
A SIGIO (amely a POSIX 1003.1-2001-ben nem szerepel) alapértelmezés szerint több más Unices-et figyelmen kívül hagy.
Valós idejű jelek
A Linux valós idejű jeleket támogat a POSIX.4 valós idejű kiterjesztésekben (és most a POSIX 1003.1-2001 verziójában) eredetileg meghatározott módon. A Linux 32 valós idejű jelet támogat, 32-ből ( SIGRTMIN ) 63-ra ( SIGRTMAX ). (A programoknak mindig a SIGRTMIN + n jelölést használó valós idejű jelekre kell vonatkozniuk, mivel a valós idejű jelszámok tartománya eltér a Unices-tól.)
A standard jelekkel ellentétben a valós idejű jeleknek nincsenek előre meghatározott jelentéseik: a valós idejű jelek teljes készlete alkalmazható meghatározott célokra. (Ne feledje azonban, hogy a LinuxThreads implementációja az első három valós idejű jelet használja.)
A nem kezelt valós idejű jel alapértelmezett művelete a vételi folyamat befejezése.
A valós idejű jeleket az alábbiak különböztetik meg:
- Több valós idejű jel véletlen sorrendbe állítható. Ezzel szemben, ha egy szabványos jel több példányát kiadják, amíg a jel jelenleg blokkolódik, akkor csak egy példány kerül várakozásra.
- Ha a jelzés a sigqueue (2) használatával történik , egy kísérőérték (akár egész szám, akár mutató) küldhető a jelzéssel. Ha a fogadó folyamat a SA_SIGACTION jelzővel (2) a jelzéshez hozzárendeli a jelet, akkor az adatokat a kezelő által második argumentumként átadott siginfo_t struktúra si_value mezőjében szerezheti be. Ezen túlmenően a struktúra si_pid és si_uid mezői felhasználhatók a jel PID és valós felhasználói azonosítójának megszerzésére.
- A valós idejű jelek garantált sorrendben érkeznek. Az azonos típusú többszörös valós idejű jelek abban az sorrendben kerülnek kiszállításra, amelyet elküldtek. Ha egy folyamathoz különböző valós idejű jeleket küldünk, azok a legalacsonyabb számmal kezdődő jelet indítják. (Vagyis az alacsony számozású jelek elsőbbséget élveznek.)
Ha mind a szabványos, mind a valós idejű jelek folyamatban vannak, a POSIX elhagyja azt, amit először adtak meg. A Linux, mint sok más implementáció, ebben az esetben a szabványos jeleket is előnyben részesít.
A POSIX szerint a végrehajtásnak legalább _POSIX_SIGQUEUE_MAX (32) valós idejű jeleket kell engedélyeznie egy folyamathoz. Azonban, ahelyett, hogy egy per-processz limitet helyezne el, a Linux rendszer-szintű határt szab a sorban álló valós idejű jelek számának minden folyamatra.
Ez a határérték megtekinthető (és jogosultsággal) a / proc / sys / kernel / rtsig-max fájlon keresztül. Egy kapcsolódó fájl, a / proc / sys / kernel / rtsig-max , arra használható, hogy megtudja, hány valós idejű jelet állítottak sorba.
MEGFELELŐEN
POSIX.1
Fontos: Az ember paranccsal ( % man ) tekintse meg, hogyan használják a parancsot az adott számítógépen.