Mitä tekee komento kill -1?
kill -1 tekee ja mitä?
kepponen ja karkki
7601
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 7
Vanhimmat
kill = tappaa
kill -1 = -kill = un-kill = herättää henkiin
eli komento yksinkertaisesti palauttaa viimeksi tapetun prosessin
Komento kill -1 ei tee yhtään mitään vaan antaa virheilmoituksen koska prosessi-id puuttuu.
Oikein käytettynä eli
kill -1
se restarttaa kyseisen prosessin.
man kill
info kill
Ei tuollaisia tarvitsisi edes ihmetellä, kun vastaus löytyy omalta kovalevyltä (palvelimen kovalevyltä tai netistä).
tekeekö kill -9 mielestäsi prosessin herätyksen "unkill"in 9 kertaa ^^
Ensinnäkin kill -1 ei tee yhtään mitään, koska tuommoista ei ole määritelty kill-komennon syntaksissa.
Jos komento annetaan jossakin näistä muodoista:
$ kill -1
$ kill -s 1
$ kill -HUP
Sillon prosessille lähetetään signaali SIGHUP. Edellisissä komennossa signaalin numero on siis 1, eli SIGHUP.
SIGHUP:n perinteinen merkitys voidaan katsoa komennolla:
$ man signal
Man-sivulta löytyy kuvaus:
"SIGHUP 1 Term
Hangup detected on controlling terminal or death of controlling process"
Suomeksi tuo tarkotta siis sitä, että prosessille lähetetään SIGHUP-signaali, kun sen kontrollipäätteen komentotulkki kuolee (ns. process group leader). Jos prosessin halutaan jäävän eloon, on SIGHUP signaali käsiteltävä prosessin koodissa.
Tämä alkuperäinen merkitys on peräisin ajalta jolloin unix-koneita käytettiin pääasiassa tekstipäätteillä. Jos käyttäjän yhteys etäkoneeseen katkeaa jostain syystä, käynnissä ollut ohjelma saa SIGHUP-signaalin. Kun prosessi saa SIGHUP-signaalin se voi tehdä tarvittavat toimet lopettaakseen itsensä mahdollisimman siististi. Esimerkiksi etäkoneella ajettu tekstieditori voi tallettaa tiedoston jota muutettiin ja sitten lopettaa itsensä. Tekstieditori voi sitten myöhemmin jatkaa siitä mihin jäätiin. Esimerkiksi nano toimii noin.
SIGHUP:lla on myös toinen merkitys. Jos SIGHUP annetaan jollekin palvelinprosessille se tarkoittaa että konffaustiedostoa on muutettu ja prosessin pitää lukea tiedosto uudelleen ja ottaa muuttuneet asetukset käyttöön ilman, että palveluun tulee käyttökatkoa.
Jos komento annetaan muodossa:
$ kill - -1
Sillon -1 on erikoistapaus prosessinumerosta. -1 tarkottaa, että kill-komento koskee kaikkia muita prosesseja, paitsi itse kill-prosessia ja init-prosessia.
Esim komento:
$ kill -9 -1
Tappaa kaikki prosessit, jotka käyttäjä voi tappaa.
"Esimerkiksi etäkoneella ajettu tekstieditori voi tallettaa tiedoston jota muutettiin ja sitten lopettaa itsensä. Tekstieditori voi sitten myöhemmin jatkaa siitä mihin jäätiin. Esimerkiksi nano toimii noin."
Niin siis jos nanolle annetaan signaali SIGHUP, niin nano tallettaa avoimena olevan tiedoston tilapäistiedostoon. Eli esim:
$ nano teksti
$ kill -HUP 10367 (10367 vaan sattuu olemaan nyt esimerkissä nanon prosessinumero)
Received SIGHUP or SIGTERM
Buffer written to teksti.save
Eli nano tallenti muutetun tiedoston teksti tiedostoon teksti.save, jonka jälkeen nanon prosessi lopetti itsensä.