Skip to main content

Signaali - Linux / Unix-komento

Praat-ohjelman äänieditori-ikkuna (Saattaa 2025)

Praat-ohjelman äänieditori-ikkuna (Saattaa 2025)
Anonim

Linux tukee sekä POSIX-luotettavia signaaleja (jäljempänä "standardisignaaleja") että POSIX-reaaliaikaisia ​​signaaleja.

Vakiosignaalit

Linux tukee alla lueteltuja vakiosignaaleja. Useat signaalinumerot ovat arkkitehtuuria riippuvaisia, kuten "Arvo" -sarakkeessa on osoitettu. (Jos kolme arvoa annetaan, ensimmäinen on yleensä voimassa alfa ja sparc, keskimmäinen i386, ppc ja sh, ja viimeinen mipsille.

A - tarkoittaa, että vastaava arkkitehtuuri puuttuu signaalista.)

Taulukon Toiminto-sarakkeessa olevat merkinnät määrittävät signaalin oletustoiminnon seuraavasti:

Termi

Oletuksena on lopettaa prosessi.

Ign

Oletuksena on ohittaa signaali.

Ydin

Oletusasetus on lopettaa prosessin ja salauksen ydin.

Stop

Oletuksena on lopettaa prosessi.

Ensin signaalit, jotka on kuvattu alkuperäisessä POSIX.1-standardissa.

SignaaliArvoToimintaKommentti
tai kontrollointiprosessin kuolemaa
SIGINT2TermiKeskeytys näppäimistöstä
SIGQUIT3YdinLopeta näppäimistöstä
SIGILL4YdinLaittomia ohjeita
SIGABRT6YdinKeskeytä signaali keskeyttää (3)
SIGFPE8YdinFloating point poikkeus
SIGKILL9TermiTapa signaali
SIGSEGV11YdinVirheellinen muistin viite
SIGPIPE13TermiRikki putki: kirjoita putkiin ilman lukijoita
SIGALRM14TermiAjastussignaali hälytys (2)
SIGTERM15TermiPäätyssignaali
SIGUSR130,10,16TermiKäyttäjän määrittelemä signaali 1
SIGUSR231,12,17TermiKäyttäjän määrittelemä signaali 2
SIGCHLD20,17,18IgnLapsi pysähtyi tai lopetti
SIGCONT19,18,25 Jatka, jos se pysähtyy
SIGSTOP17,19,23StopPysäytä prosessi
SIGTSTP18,20,24StopLopeta kirjoitettu tty: ssä
SIGTTIN21,21,26Stoptty syöttö taustaprosessille
SIGTTOU22,22,27Stoptty tuotos taustaprosessille

SignaalitSIGKILL jaSIGSTOP ei voida kiinni, estää tai jättää huomiotta.

Seuraavaksi signaalit eivät ole POSIX.1-standardissa mutta kuvattu SUSv2 ja SUSv3 / POSIX 1003.1-2001.

SignaaliArvoToimintaKommentti
SIGPOLL TermiPollable tapahtuma (Sys V). SIGIOn synonyymi
SIGPROF27,27,29TermiProfiililaskuri on vanhentunut
SIGSYS12,-,12YdinHuono argumentti rutiinille (SVID)
SIGTRAP5YdinTrace / breakpoint-ansa
SIGURG16,23,21IgnKiireellinen tila pistorasiassa (4.2 BSD)
SIGVTALRM26,26,28TermiVirtuaalinen herätyskello (4.2 BSD)
SIGXCPU24,24,30YdinCPU-aikaraja ylittyi (4.2 BSD)
SIGXFSZ25,25,31YdinTiedostokoon raja ylitetty (4.2 BSD)

Jopa Linux 2.2, oletusarvoinen käyttäytyminenSIGSYS, SIGXCPU, SIGXFSZ, ja (muissa arkkitehtuureissa kuin SPARC ja MIPS)SIGBUS oli lopettaa prosessi (ilman ydinkeräystä). (Joillakin muilla Unicesillä oletustoimintoSIGXCPU jaSIGXFSZ on lopettaa prosessi ilman ydinkeräystä.) Linux 2.4 noudattaa POSIX 1003.1-2001 -standardeja näille signaaleille, lopettaen prosessin ytimen kaatopaikalle.

Seuraavat muut erilaiset signaalit.

SignaaliArvoToimintaKommentti
SIGEMT7,-,7Termi
SIGSTKFLT-,16,-TermiStack-vika koprocessorissa (käyttämättömänä)
SIGIO23,29,22TermiI / O nyt mahdollinen (4.2 BSD)
SIGCLD-,-,18IgnSynonyymi SIGCHLD: lle
SIGPWR29,30,19TermiSähkökatkos (järjestelmä V)
SIGINFO29,-,- Synonyymi SIGPWR: lle
SIGLOST-,-,-TermiTiedoston lukitus menetetty
SIGWINCH28,28,20IgnIkkunan kokoaaltosignaali (4.3 BSD, Aurinko)
SIGUNUSED-,31,-TermiKäyttämätön signaali (tulee olemaan SIGSYS)

(Signaali 29 onSIGINFO / SIGPWR alfa muttaSIGLOST sparcilla.)

SIGEMT ei ole määritelty POSIX 1003.1-2001: ssä, mutta silti näkyy useimmissa muissa Unices-sovelluksissa, joissa sen oletustoiminto tyypillisesti lopettaa prosessin ytimen kaatopaikalle.

SIGPWR (jota ei ole määritetty POSIX 1003.1-2001: ssä) on yleensä jätetty oletusarvoisesti niille muille Unices-alueille, joissa se näkyy.

SIGIO (jota ei ole määritelty POSIX 1003.1-2001: ssa) on oletusarvoisesti jätetty huomiotta useilla muilla Unices-laitteilla.

Reaaliaikaiset signaalit

Linux tukee reaaliaikaisia ​​signaaleja, kuten alun perin määritettiin POSIX.4-reaaliaikaisissa laajennuksissa (ja nyt POSIX 1003.1-2001). Linux tukee 32 reaaliaikaista signaalia, numeroiden 32 (SIGRTMIN) 63 (SIGRTMAX). (Ohjelmien tulisi aina viitata reaaliaikaisiin signaaleihin merkinnälläSIGRTMIN+ n, koska reaaliaikaisen signaalinumerot vaihtelevat Unicesin kautta.)

Toisin kuin standardisignaaleilla, reaaliaikaisilla signaaleilla ei ole ennalta määriteltyjä merkkejä: koko reaaliaikaisen signaalin sarjaa voidaan käyttää sovelluksen määrittämissä tarkoituksissa. (Huomaa kuitenkin, että LinuxThreads-toteutus käyttää ensimmäisiä kolmea reaaliaikaista signaalia.)

Käsittelemättömän reaaliaikaisen signaalin oletustoiminto on päättää vastaanottoprosessi.

Reaaliaikaiset signaalit erotetaan seuraavista:

  1. Useita reaaliaikaisia ​​signaaleja voi olla jonoon. Sitä vastoin, jos usean standardisignaalin esiintymiä toimitetaan, kun signaali on tällä hetkellä tukossa, vain yksi tapaus on jonoon.
  2. Jos signaali lähetetään käyttäensigqueue(2), signaalin mukana voidaan lähettää liitäntäarvo (joko kokonaisluku tai osoitin). Jos vastaanottoprosessi muodostaa tämän signaalin käsittelijän käyttäenSA_SIGACTION lippusigaction(2) sitten se voi saada nämä tiedot si_value alalla siginfo_t rakenne siirretään toiseksi argumentiksi käsittelijälle. Lisäksi si_pid ja si_uid Tämän rakenteen kenttiä voidaan käyttää signaalin lähettämisen prosessin PID ja todellisen käyttäjätunnuksen saamiseksi.
  3. Reaaliaikaiset signaalit toimitetaan taatussa järjestyksessä. Saman tyyppisiä reaaliaikaisia ​​signaaleja toimitetaan lähetysjärjestyksessä. Jos prosessille lähetetään erilaisia ​​reaaliaikaisia ​​signaaleja, ne toimitetaan lähtien pienimmillään olevasta signaalista. (Esim. Alhaisilla numeroilla on ensisijainen merkitys.)

Jos sekä vakiotilaus- että reaaliaikaiset signaalit odottavat prosessia, POSIX jättää määrittelemättömän, joka toimitetaan ensin. Linux, kuten monet muut toteutukset, antaa etusijalle vakiosignaalit tässä tapauksessa.

POSIXin mukaan toteutuksen tulisi mahdollistaa ainakin _POSIX_SIGQUEUE_MAX (32) reaaliaikaiset signaalit jonossa prosessiin. Kuitenkin prosessin rajojen asettamisen sijaan Linux asettaa järjestelmäkohtaisen rajan kaikille reaaliaikaisille signaaleille kaikille prosesseille.

Tätä rajaa voi tarkastella (ja etuoikeudella) muuttamalla / Proc / sys / kernel / rtsig-max tiedosto. Aiheeseen liittyvä tiedosto, / Proc / sys / kernel / rtsig-max , voidaan selvittää, kuinka monta reaaliaikaista signaalia on jonossa.

TÄYDENTÄVÄ

POSIX.1

Tärkeä: Käytä mies komento ( % mies ), miten komentoa käytetään tietyssä tietokoneessa.