Signaali

Linux.fista
Versio hetkellä 3. lokakuuta 2009 kello 22.02 – tehnyt Heikki (keskustelu | muokkaukset) (tällainen perusasiasivu)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Linuxissa ohjelmat voivat lähettää toisilleen erityyppisiä viestejä signaaleilla. Signaalien avulla saadaan ohjelmat tekemään tiettyjä asioita, ja useimmiten niitä käytetään ohjelmien lopettamiseen.

Useimpien signaalien oletusvaikutus on ohjelman lopettaminen, mutta ohjelma voi määritellä oman tapansa suhtautua eri signaaleihin. Esimerkiksi komentoriviohjelmalle lähetetään näppäinyhdistelmällä ctrl+c signaali 15 (TERM), joka tarkoittaa sitä, että ohjelma saa tallentaa tilansa ja sen jälkeen sen on sulkeuduttava. Tämä signaali esimerkiksi lähetetään kaikille ohjelmille järjestelmän sammuessa. Ohjelman ei kuitenkaan ole pakko totella tällaista signaalia.

Signaali numero 9 (KILL) on ainoa signaali, jonka vaikutusta ohjelma ei voi muuttaa, vaan tämä signaali lopettaa kyseisen ohjelman suorituksen välittömästi. Esimerkiksi lopetettaessa ohjelmia kill-komennolla voidaan oletuksena käytettävän signaalin 15 sijasta käyttää voimakkaampaa signaalia 9 antamalla se parametrina:

kill -9 ohjelman_pid

Edellä mainittujen signaalien lisäksi eräs yleinen signaali on signaali numero 1 (HUP). Se lähetetään ohjelmalle tilanteessa jossa yhteys, jonka kautta ohjelmaa käytettiin, katkeaa. Tämä tapahtuu esimerkiksi silloin kun päätteessä ajetaan komentoriviohjelmaa ja pääte suljetaan tai jos ohjelmaa ajetaan etäkoneella SSH-yhteyden yli. Monet ohjelmat reagoivat HUP-signaaliin samalla tavalla kuin TERM-signaaliin.

Katso myös