Ero sivun ”Signaali” versioiden välillä
Siirry navigaatioon
Siirry hakuun
täydennyksiä, korjauksia, muotoilujen muutoksia
(tällainen perusasiasivu) |
LP (keskustelu | muokkaukset) (täydennyksiä, korjauksia, muotoilujen muutoksia) |
||
Rivi 1: | Rivi 1: | ||
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. | 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. | ||
Signaaleja voi lähettää komentoriviltä näppäinyhdistelmillä (INT, QUIT, STP) tai [[kill]]-komennolla ja ohjelmista kill-järjestelmäkutsulla. Monia signaaleja lähetetään viestittämään erilaisista virhe- ja erikoistilanteista ytimen, X:n tms. toimesta. | |||
Useimpien signaalien oletusvaikutus on ohjelman lopettaminen, mutta ohjelma voi määritellä oman tapansa suhtautua eri signaaleihin. Esimerkiksi [[komentorivi]]ohjelmalle lähetetään näppäinyhdistelmällä ctrl+c signaali 2 (''INT''), joka tarkoittaa sitä, että ohjelma saa tallentaa tilansa ja sen jälkeen sen pitäisi sulkeutua. Tämä signaali esimerkiksi lähetetään kaikille ohjelmille järjestelmän sammuessa. | |||
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ääte-emulaattori|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. | |||
Signaalit numerot 9 (''KILL'') ja 19 (''STOP'') ovat ainoat signaalit, joiden vaikutusta ohjelma ei voi muuttaa, vaan nämä signaalit lopettavat (KILL) tai pysäyttävät (STOP) kyseisen ohjelman suorituksen välittömästi. | |||
KILL-signaali annetaan yleensä koneen sulkemisen yhteydessä, kun ensin on varoitettu ohjelmia TERM-signaalilla. Sillä voi myös sulkea rikkinäisen ohjelman, joka ei tottele muita signaaleja, mutta koska ohjelmalle ei jää mahdollisuutta sulkea jälkensä tätä | |||
Joitakin signaaleja: | |||
* '''HUP''' ("hangup"): yhteys käyttäjään katkennut. Kun Unix-koneita käytettiin puhelinverkon välityksellä tämä signaali annettiin yhteyden katketessa. Nykyään tyypillinen syy on [[pääte-emulaattori|pääteikkunan]] sulkeminen. Palvelinohjelmistoja voi usein pyytää lukemaan asetustietonsa uudestaan tällä signaalilla. | |||
* '''INT''' ("interrupt"): käyttäjä on painanut CTRL-C. Ohjelma sulkeutuu. | |||
* '''QUIT''': käyttäjä on painanut näppäinyhdistelmää QUIT (katso [[stty]]). Ohjelma sulkeutuu, mutta jättää [[core]]-tiedoston ohjelman toiminnan tutkimiseksi. | |||
* '''KILL''': ydin lopettaa ohjelman ilman varoitusta | |||
* '''SIGUSR1''': ohjelmakohtaisesti määritelty | |||
* '''SEGV''': väärä muistinosoitus eli vika ohjelmassa, muistipiireissä tms. | |||
* '''TERM''': ohjelma pyydetään sulkeutumaan, esimerkiksi [[shutdown]]-käskyn takia | |||
* '''STOP''': ydin pysäyttää ohjelman | |||
* '''CONT''': ohjelman annetaan jatkaa | |||
== Katso myös == | == Katso myös == |