Skip to main content

Jel - Linux / Unix parancs

Reboot or shutdown your Linux server (Június 2026)

Reboot or shutdown your Linux server (Június 2026)
Anonim

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ékAkcióMegjegyzés
vagy az ellenőrzési folyamat halála
SIGINT2kifejezésMegszakítás a billentyűzetről
SIGQUIT3MagLépjen ki a billentyűzetről
SIGILL4MagIllegális utasítás
SIGABRT6MagMegszakad a jel elvetél (3)
SIGFPE8MagLebegőpontos kivétel
SIGKILL9kifejezésÖlj meg
SIGSEGV11MagÉrvénytelen memória-hivatkozás
SIGPIPE13kifejezésTörött cső: írjon csőre olvasók nélkül
SIGALRM14kifejezésIdőzítő jel a riasztás (2)
SIGTERM15kifejezésMegszakítási jel
SIGUSR130,10,16kifejezésFelhasználó által definiált jel 1
SIGUSR231,12,17kifejezésFelhasználó által definiált jel 2
SIGCHLD20,17,18IgnA gyermek megállt vagy megszűnt
SIGCONT19,18,25 Folytassa ha leállt
SIGSTOP17,19,23Állj megÁllítsa le a folyamatot
SIGTSTP18,20,24Állj megLépjen be a tty
SIGTTIN21,21,26Állj megtty bemenet a háttérfolyamathoz
SIGTTOU22,22,27Állj megtty output a háttérfolyamathoz

A jelekSIGKILL ésSIGSTOP 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ékAkcióMegjegyzés
SIGPOLL kifejezésPollable esemény (Sys V). A SIGIO szinonimája
SIGPROF27,27,29kifejezésA profilozási időzítő lejárt
SIGSYS12,-,12MagRossz feladat (SVID)
SIGTRAP5MagTrace / breakpoint csapda
SIGURG16,23,21IgnSürgős állapot az aljzaton (4.2 BSD)
SIGVTALRM26,26,28kifejezésVirtuális ébresztőóra (4.2 BSD)
SIGXCPU24,24,30MagCPU időkorlát túllépte (4.2 BSD)
SIGXFSZ25,25,31MagA fájlméretkorlát túllépte (4.2 BSD)

Legfeljebb a Linux 2.2, az alapértelmezett viselkedés aSIGSYS, SIGXCPU, SIGXFSZ, és (a SPARC és a MIPS kivételével)SIGBUS volt, hogy befejezze a folyamatot (core dump nélkül). (Néhány másik Unices esetében az alapértelmezett műveletSIGXCPU ésSIGXFSZ hogy befejezi a folyamatot mag nélküli dump nélkül.) A Linux 2.4 megfelel a POSIX 1003.1-2001 követelményeknek ezekkel a jelekkel, és lezárja a folyamatot egy központi dump segítségével.

Következő különböző egyéb jelek.

JelÉrtékAkcióMegjegyzés
SIGEMT7,-,7kifejezés
SIGSTKFLT-,16,-kifejezésStack hiba a koprocesszoron (fel nem használt)
SIGIO23,29,22kifejezésI / O most lehetséges (4.2 BSD)
SIGCLD-,-,18IgnA SIGCHLD szinonimája
SIGPWR29,30,19kifejezésÁramkimaradás (V rendszer)
SIGINFO29,-,- A SIGPWR szinonimája
SIGLOST-,-,-kifejezésA fájlzár elveszett
SIGWINCH28,28,20IgnAz ablak átméretezése (4.3 BSD, Sun)
SIGUNUSED-,31,-kifejezésFel nem használt jel (SIGSYS lesz)

(A 29. jelSIGINFO / SIGPWR egy alfa, deSIGLOST egy sparcon.)

SIGEMT nincs megadva a POSIX 1003.1-2001 verziójában, de a legtöbb más Unices esetében mindig megjelenik, ahol az alapértelmezett művelet jellemzően a folyamatot coredump-el zárja.

SIGPWR (amely nincs megadva a POSIX 1003.1-2001-ben) általában az alapértelmezetten figyelmen kívül hagyja azokat a többi Unices-et, ahol megjelenik.

SIGIO (amely nem szerepel a POSIX 1003.1-2001 szabványban) alapértelmezés szerint figyelmen kívül hagyja számos más Unices-et.

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 jelzést kell használni valós idejű jelekreSIGRTMIN+ n, 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:

  1. 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.
  2. Ha a jelet elküldisigqueue(2), egy kísérőérték (akár egész szám, akár mutató) küldhető a jelzéssel. Ha a fogadó folyamat létrehoz egy kezelőt ehhez a jelhez aSA_SIGACTION zászlósigaction(2), akkor ezeket az adatokat a si_value a siginfo_t a második argumentum a kezelőhöz képest. Továbbá a si_pid és si_uid ezen struktúra mezõi felhasználhatók a jel küldésére szolgáló folyamat PID és valós felhasználói azonosítójának megszerzésére.
  3. 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. (Pl. 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 kiváltságokkal) a / Proc / sys / kernel / rtsig-max fájlba. Egy kapcsolódó fájl, / Proc / sys / kernel / rtsig-max , fel lehet használni, hogy megtudja, hány valós idejű jelzés áll a sorban.

MEGFELELŐEN

POSIX.1

Fontos: Használja a Férfi parancs ( % Férfi ), hogy lássa, hogyan használják a parancsot az adott számítógépen.