kiinnostunut oppimaan lisää Linuxin hallinnosta? Tutustu näihin Linux-koulutuksiin.
- Introduction to Linux (LFS101x) – Free
- Essentials of Linux System Administration (Lfs201)
Opi tappamaan erheelliset prosessit tässä opetusohjelmassa arkistoistamme.
kuva tästä: olet käynnistänyt sovelluksen (oli se sitten suosikki työpöytävalikostasi tai komentoriviltä) ja aloitat käynnistetyn sovelluksen käytön, vain saadaksesi sen lukittumaan sinuun, lopettamaan suorittamisen tai yllättäen kuolemaan. Yrität ajaa sovellusta uudelleen, mutta käy ilmi, että alkuperäinen ei koskaan todella sammu kokonaan.
Mitä teet? Tapat prosessin. Mutta miten? Usko tai älä, paras vetosi on useimmiten komentorivillä. Onneksi Linuxilla on kaikki tarvittavat työkalut valtuuttaakseen sinut, käyttäjän, tappamaan hairahtuneen prosessin. Kuitenkin, ennen kuin välittömästi käynnistää että komento tappaa prosessi, sinun täytyy ensin tietää, mitä prosessi on. Miten hoidat tämän kerroksellisen tehtävän? Se on itse asiassa melko yksinkertaista, – kunhan tuntee käytössään olevat työkalut.
Sallikaa minun esitellä teille mainitut työkalut.
vaiheet, jotka aion hahmotella, toimivat lähes jokaisessa Linux-jakelussa, oli se sitten työpöytä tai palvelin. Käsittelen tiukasti komentoriviä, joten avatkaa päätelaitteenne ja valmistautukaa kirjoittamaan.
prosessin Paikallistaminen
ensimmäinen askel reagoimattoman prosessin lopettamisessa on sen Paikallistaminen. On olemassa kaksi komentoa käytän paikantaa prosessi: top ja ps. Top on työkalu, johon jokaisen ylläpitäjän tulisi tutustua. Top, saat täyden luettelon parhaillaan käynnissä prosessi. Näytä komentoriviltä ylhäältä lista käynnissä olevista prosesseista (Kuva 1).
tästä luettelosta näet melko tärkeitä tietoja. Sanotaan, että esimerkiksi Chrome on muuttunut reagoimattomaksi. Mukaan meidän alkuun näyttö, voimme havaita on neljä tapausta chrome käynnissä prosessi IDs (PID) 3827, 3919, 10764, ja 11679. Tämä tieto on tärkeää olla yksi tietty tapa tappaa prosessi.
vaikka top on uskomattoman kätevä, se ei ole aina tehokkain keino saada tarvitsemaansa tietoa. Oletetaan, että tiedät Chrome prosessi on mitä sinun täytyy tappaa, ja et halua tarvitse vilkaista reaaliaikaista tietoa tarjoamia top. Tätä varten, voit käyttää ps komento ja suodattaa lähtö grep. PS-komento raportoi tilannekuvan käynnissä olevasta prosessista ja grep tulostaa kuviota vastaavat rivit. Syy, miksi me suodattaa ps kautta grep on yksinkertainen: Jos annat PS-komennon itsestään, saat tilannekuvan kaikista nykyisistä prosesseista. Haluamme vain Chromeen liittyvän listauksen. Tämä komento näyttäisi siis tältä:
ps aux | grep chrome
aux-vaihtoehdot ovat seuraavat:
-
a = Näytä prosessit kaikille käyttäjille
u = Näytä prosessin käyttäjä/omistaja
x = näytä myös prosessit, jotka eivät ole liittyneet päätelaitteeseen
x-vaihtoehto on tärkeä, kun etsit tietoa graafisesta sovelluksesta.
kun annat yllä olevan komennon, saat enemmän tietoa kuin tarvitset (kuva 2) jonkin prosessin tappamiseen, mutta se on joskus tehokkaampaa kuin Topin käyttäminen.
prosessin tappaminen
nyt on vuorossa prosessin lopettaminen. Meillä on kaksi tietoa, jotka auttavat meitä tuhoamaan prosessin.:
-
prosessin tunnus
prosessin nimi
jota käytät määrittää päättämiseen käytetyn komennon. Prosessin tappamiseen käytetään kahta komentoa:
-
kill – Kill a process by ID
killall – Kill a process by name
on myös erilaisia signaaleja, jotka voidaan lähettää molempiin tappokäskyihin. Lähettämäsi signaali määräytyy sen mukaan, mitä tuloksia haluat tappokomennolta. Voit esimerkiksi lähettää Hup (ripustaa) – signaalin kill-komentoon, joka käynnistää prosessin tehokkaasti uudelleen. Tämä on aina viisas valinta, kun tarvitset prosessin välittömästi uudelleen (kuten jos kyseessä on taustaprosessi). Voit saada listan kaikista signaaleista, jotka voidaan lähettää kill-l-komennolle. löydät melko suuren määrän signaaleja (kuva 3).
yleisimmät tapposignaalit ovat:
Signal Name |
Single Value |
Effect |
SIGHUP |
Hangup |
|
SIGINT |
Interrupt from keyboard |
|
SIGKILL |
Kill signal |
|
SIGTERM |
Termination signal |
|
SIGSTOP |
17, 19, 23 |
Stop the process |
mikä tässä on mukavaa on se, että voit käyttää signaalin arvoa signaalin nimen sijasta. Sinun ei siis tarvitse opetella ulkoa kaikkia eri signaalien nimiä.
so, let ’ s now use the kill command to kill our instance of chrome. Tämän komennon rakenne olisi:
kill SIGNAL PID
, jossa signaali on lähetettävä signaali ja PID on lopetettava prosessin tunnus. Tiedämme jo ps: n käskystä, että Tappamamme tunnukset ovat 3827, 3919, 10764 ja 11679. Lähettääksemme tapposignaalin annoimme käskyt.:
kill -9 3827kill -9 3919kill -9 10764kill -9 11679
kun olemme antaneet yllä olevat komennot, kaikki Chromen prosessit on onnistuttu tappamaan.
easy route! Jos tiedämme jo, että prosessi, jonka haluamme tappaa, on nimeltään chrome, Voimme käyttää killall-komentoa ja lähettää saman signaalin prosessille näin:
killall -9 chrome
ainoa varoitus edellä mainitulle komennolle on, että se ei välttämättä nappaa kaikkia käynnissä olevia Chromen prosesseja. Jos edellä mainitun komennon suorittamisen jälkeen annat PS aux|grep chrome-komennon ja näet jäljellä olevat prosessit käynnissä, paras vaihtoehto on palata kill-komentoon ja lähettää signaali 9, jotta PID lopettaa prosessin.
prosessien päättäminen tehty helpoksi
kuten näette, erheellisten prosessien tappaminen ei ole läheskään niin haastavaa kuin olisi voinut luulla. Kun päädyn itsepäinen prosessi, minulla on tapana aloittaa pois killall komento, koska se on tehokkain reitti päättymiseen. Kuitenkin, kun päädyt todella ärhäkkä prosessi, tappaa komento on tie.
Lue lisää Linuxista Linux Foundationin ja edX: n ilmaisella ”Introduction to Linux” – kurssilla.