Johdanto
Linux-palvelin, kuten mikä tahansa muu tietokone, saatat olla perehtynyt, toimii sovelluksia. Tietokoneelle näitä pidetään ”prosesseina”.
Vaikka Linux hoitaa matalan tason, takana-the-scenes hallinta prosessin elinkaaren ajan, tarvitset tapa vuorovaikutuksessa käyttöjärjestelmän hallita sitä korkeampi taso.
tässä oppaassa keskustellaan prosessinhallinnan yksinkertaisista näkökohdista. Linux tarjoaa tähän tarkoitukseen runsaasti työkaluja.,
selvitämme näitä ideoita Ubuntu 12.04 VPS: ssä, mutta mikä tahansa moderni Linux-jakelu toimii samalla tavalla.
Miten Näytä Käynnissä olevat Prosessit, Linux
alkuun
helpoin tapa saada selville, mitä prosesseja on käynnissä palvelimella on ajaa top
komento:
top
top kimpale tiedot antaa järjestelmän tilastoja, kuten järjestelmän kuormitus ja määrä tehtäviä.
voit helposti nähdä, että käynnissä on 1 prosessi, ja 55 prosessia nukkuvat (eli joutokäynti / ei käytä suorittimen resursseja).,
alaosassa on käynnissä olevat prosessit ja niiden käyttötilastot.
htop
parannettu versio top
kutsutaan htop
, on saatavilla arkistot. Asenna se tällä komennolla:
sudo apt-get install htop
Jos me suorita htop
komento, näemme, että siellä on enemmän käyttäjäystävällinen näyttö:
htop
Voit oppia lisää siitä, miten käyttää ylä-ja htop täällä.,
Kuinka Käyttää ps Lista Prosessit
Molempien top
ja htop
tarjota mukava käyttöliittymä voit tarkastella käynnissä prosesseja samanlainen graafinen task manager.
nämä työkalut eivät kuitenkaan aina ole riittävän joustavia kattamaan kaikkia skenaarioita. Tehokas komento nimeltään ps
on usein vastaus näihin ongelmiin.,
Kun kutsutaan ilman argumentteja, lähtö voi olla hieman puute-kiilto:
ps
PID TTY TIME CMD 1017 pts/0 00:00:00 bash 1262 pts/0 00:00:00 ps
Tämä lähtö näyttää kaikki prosessit, jotka liittyvät nykyisen käyttäjän ja päätelaitteen istunto. Tämä on järkevää, koska olemme vain käynnissä bash
ja ps
tämän terminaalin tällä hetkellä.,
saada kattavampi kuva prosesseja tämän järjestelmän, meillä voi suorittaa seuraavat:
ps aux
Nämä valinnat kertovat ps
näyttää prosesseja omistaa kaikki käyttäjät (riippumatta niiden terminal association) käyttäjäystävällinen muodossa.
Voit nähdä puu, jossa hierarkkinen suhteita on havainnollistettu, voimme suorittaa komennon, jossa nämä vaihtoehdot:
ps axjf
Kuten näette, prosessi kthreadd
näkyy olevan vanhemman ksoftirqd/0
prosessi ja muut.,
Huomautus Prosessitunnuksista
Linuxissa ja Unixin kaltaisissa järjestelmissä jokaiselle prosessille annetaan prosessitunnus eli PID. Näin käyttöjärjestelmä tunnistaa ja seuraa prosesseja.
nopea tapa saada PID-prosessi on pgrep
komento:
pgrep bash
1017
Tämä on yksinkertaisesti kysely prosessin ID: n ja palauttaa sen.
ensimmäinen käynnistetty prosessi, nimeltään init, annetaan PID ”1”.,
pgrep init
1
Tämä prosessi on sitten vastuussa kutu joka toinen prosessi järjestelmässä. Myöhemmille prosesseille annetaan suuremmat PID-numerot.
prosessin vanhempi on prosessi, joka vastasi sen kutemisesta. Vanhemman prosesseja on PPID: tä, jossa voit nähdä sarakeotsikot monissa prosessin hallinta sovelluksia, mukaan lukien top
, htop
ja ps
.,
Kaikki viestintä käyttäjän ja käyttöjärjestelmän tietoja prosessit liittyy kääntäminen välillä prosessin nimet ja Pidit jossain vaiheessa operaation aikana. Siksi apuohjelmat kertovat PID: n.
Vanhempi-Lapsi-Suhteet
Luominen lapsen prosessi tapahtuu kahdessa vaiheessa: haarukka(), joka luo uuden osoitteen tilaa ja kopioi varat emoyhtiön omistamat kautta copy-on-write olla saatavilla, jotta lapsi prosessi; ja exec(), joka lataa suoritettavan osoite tilaa ja suorittaa sen.,
– Siinä tapauksessa, että lapsi prosessi kuolee, ennen kuin sen vanhemman, lapsen tulee zombie, kunnes vanhempi on kerännyt tietoja tai ilmoittanut kernel, että se ei tarvitse sitä tietoa. Sen jälkeen lastenprosessin resurssit vapautuvat. Jos vanhempi prosessi kuolee ennen kuin lapsi on kuitenkin lapsi hyväksytään init, vaikka se voidaan myös siirtää toiseen prosessiin.
miten Prosessisignaalit lähetetään Linuxissa
kaikki prosessit Linuxissa vastaavat signaaleihin. Signaalit ovat os-tason tapa käskeä ohjelmia lopettamaan tai muuttamaan käyttäytymistään.,
Kuinka Lähettää Prosesseja Signaaleja PID
yleisin tapa välittää signaaleja ohjelma on kill
komento.
Kuten arvata saattaa, oletuksena toiminnallisuutta tämä apuohjelma on yrittää tappaa prosessi:
<ennen>
tappaa <span class=”kohokohta”>PIDoftarget_process</span>
</pre>
Tämä lähettää TERMI signaali prosessi., TERMISIGNAALI kertoo prosessin päättyvän. Näin ohjelma voi suorittaa puhdistustoimia ja poistua sujuvasti.,
Jos ohjelma on huonosti ja ei lopeta, kun sitä annetaan TERMI signaalin, emme voi kärjistyä signaali kulkee KILL
signaali:
<ennen>
tappaa -TAPPAA <span class=”kohokohta”>PIDoftarget_process</span>
</pre>
– Tämä on erityinen merkki siitä, että ei ole lähetetty ohjelma.,
sen sijaan se annetaan käyttöjärjestelmän ytimelle, joka sulkee prosessin. Tätä käytetään ohittamaan ohjelmia, jotka jättävät huomiotta heille lähetetyt signaalit.
jokaisella signaalilla on oheinen numero, joka voidaan siirtää nimen sijaan. Esimerkiksi, voit ohittaa ”-15 ”sijasta” – termi”, ja”-9″ sijasta ”- tappaa”.
signaalien käyttöä muihin tarkoituksiin
signaaleja ei käytetä vain ohjelmien sammuttamiseen. Niitä voidaan käyttää myös muiden toimien suorittamiseen.
esimerkiksi, monet demonit käynnistyy uudelleen, kun he saavat HUP
, tai ripustaa-up-signaalin., Apache on YKSI ohjelma, joka toimii näin.
<ennen>
sudo kill-HUP <span class=”kohokohta”>pidofapache</span>
</pre>
edellä komento aiheuttaa Apache ladata sen asetustiedosto ja jatkaa palvelevat sisältöä.,
Voit luetella kaikki signaalit, jotka on mahdollista lähettää tappaa kirjoittamalla:
kill -l
Kuinka Lähettää Prosesseja Signaaleja Nimi
Vaikka perinteiset tapa lähettää signaaleja on käyttää Pid, on olemassa myös menetelmiä tehdä tämä säännöllisesti prosessi-nimet.,
pkill
komento toimii lähes täsmälleen samalla tavalla kuin kill
, mutta se toimii prosessin nimi sijasta:
pkill -9 ping
edellä komento on sama:
kill -9 `pgrep ping`
Jos haluat lähettää signaalin joka esimerkiksi tietyn prosessin, voit käyttää killall
komento:
killall firefox
edellä komento lähettää TERMI signaali joka esimerkiksi firefox on käynnissä tietokoneessa.,
kuinka säätää prosessin prioriteetteja
usein, haluat säätää, mitkä prosessit ovat etusijalla palvelinympäristössä.
joitakin prosesseja voidaan pitää tilanteesi kannalta kriittisinä, kun taas toisia voidaan toteuttaa aina, kun resursseja saattaa olla ylijääneitä.
Linux ohjaa prioriteettia kiltteydeksi kutsutun arvon kautta.
Korkean prioriteetin tehtäviä pidetään vähemmän mukavaa, koska he eivät jaa resursseja samoin. Alhainen prioriteetti prosesseja, toisaalta, ovat mukavia, koska ne vaativat vain vähän resursseja.,
kun juoksimme top
artikkelin alussa oli kolumni, jossa oli merkintä ”NI”. Tämä on mukava arvo prosessi:
top
Mukava arvot voivat vaihdella välillä ”-19/-20” (korkein prioriteetti) ja ”19/20” (matalin prioriteetti) järjestelmästä riippuen.,
To run a program with a certain nice value, we can use the nice
command:
<pre>
nice -n 15 <span class=”highlight”>commandtoexecute</span>
</pre>
This only works when beginning a new program.,=”9b4b74b24a”>:
<ennen>
renice 0 <span class=”kohokohta”>PIDtoprioritize</span>
</pre>
Huomautus: Kun mukava toimii komennon nimi välttämättömyys, renice toimii soittamalla prosessi PID
Johtopäätös
Process management on aihe, joka on joskus vaikeaa uusille käyttäjille ymmärtää, koska käytetyt työkalut ovat erilaisia kuin niiden graafinen kollegansa.,
ideat ovat kuitenkin tuttuja ja intuitiivisia, ja pienellä harjoittelulla niistä tulee luontevia. Koska prosessit ovat mukana kaikessa, mitä teet tietokonejärjestelmällä, on olennaista oppia hallitsemaan niitä tehokkaasti.
<div class=”author”>Justin Ellingwood</div>
Leave a Reply