Linux Saappaat

Kuten on käynyt ilmi, ei ole paljon käynnistystä:

1. Käynnistyslatain Etsii ytimen levyllä, lataa sen muistiin, ja alkaa sen.
2. Ytimen alustaa laitteiden ja STI kuljettajia.
3. Ytimen kiinnikkeet juuritiedostojärjestelmänä.
4. Ytimen käynnistyttyä init Called ajoittaa.
5. init asettaa loput Prosessit liikkeessä.
6. Viime prosessit init käynnistää osana käynnistykseen voit kirjautua.

Tunnistaminen jokaisessa vaiheessa käynnistyksen on korvaamaton vahvistamisesta käynnistys ongelmia ja ymmärtää koko järjestelmän. Aloita hakeutua käynnistyksessä Mikä on aloitusnäyttö tai kehottaa saat sen jälkeen tietokone ei STI Power-On Self-testi, kysyy Mikä käyttöjärjestelmä suorittaa. Kun olet tehnyt valinnan, käynnistyslatain toimii Linux-ytimen, luovuttamalla valvonnan järjestelmän ytimen.

On yksityiskohtainen keskustelu ytimen tässä kirjassa, josta tämä artikkeli on toimitettu. Tässä artikkelissa käsitellään kernel initialisointivaiheessa, Vaihe Kun ydin tulostaa nippu viestejä laitteisto nykyinen järjestelmässä. Ytimen käynnistyttyä init juuri kun se näyttää viestin julistaa, että ydin on asennettu juuritiedostojärjestelmäksi:

VFS: Mounted root (ext2 tiedostojärjestelmä) readonly.

Pian sen jälkeen, Will näet viestin init lähtö, jonka jälkeen järjestelmä palvelun käynnistämisen viestejä, ja lopulta saat kirjautumiskehote jonkinlaisia.

HUOMAUTUS Päälle Red Hat Linux, Init huomautus on selvät Varsinkin, koska se "pitää myönteisenä" sinun "Red Hat Linux." Kaikki viestit jälkeen näyttää onnistumisen tai epäonnistumisen suluissa oikealla puolella näytön.

Useimmat tässä luvussa käsitellään init, Koska se on, jossa osa käynnistykseen sinulla on eniten valvontaa.
init

Ei ole mitään erikoista init. Se on aikataulu kuten muutkin Linux-järjestelmään, ja löydät sen / sbin yhdessä muiden järjestelmän binäärit. Päätarkoituksena init on aloittaa ja lopettaa muut ohjelmat tietyssä järjestyksessä. Kaikki mitä sinun tarvitsee tietää, miten tämä järjestys toimii.

On olemassa muutamia eri variaatioita, mutta useimmissa Linux-jakeluissa käytä System V tyyli keskusteltu täällä. Jotkut jakelut käyttävät Yksinkertaisempi versio, joka muistuttaa BSD init, mutta olet todennäköisesti kohtaavat tämän.

Runleveleineen

Kulloinkin Linux-järjestelmässä, joukko pohja tiettyjä prosesseja on käynnissä. Tämä tila koneen Called ITS runlevel, ja se on merkitty numeron 0 6 kautta. Järjestelmä viettää suurimman sukupuolitautien aikaa yhdessä runleveliltä. Kuitenkin, Kun sammutat koneen alas, init siirtyy eri ajotasolla, jotta valmis vuoden Järjestelmäpalvelut hyvässä järjestyksessä ja kertoa ydin lopettaa. Vielä yksi Runlevel on yhden käyttäjän tilassa, käsitellään myöhemmin.

Helpoin tapa saada käsitellä ajotasoja on tutkia init asetustiedosto / etc / inittab. Etsi rivi, kuten seuraavat:

ID: 5: initdefault:

Tämä linja tarkoittaa, että defaultista järjestelmän on 5. Kaikilla radoilla inittab ottaa tämän lomakkeen, jossa on neljä kentät erotetaan kaksoispisteellä esiintyvät seuraavassa järjestyksessä:
# Yksilöllinen tunniste (lyhyt merkkijono, kuten henkilökortti edellisessä esimerkissä)
# Sovelletaan runlevelistä (t)
# Init pitäisi ryhtyä toimiin (edellisessä esimerkissä, toiminta on asettaa oletusrunleveliltä 5)
# Suoritettava komento (valinnainen)

Ei ole suoritettava komento edellisessä initdefault esimerkiksi koska komento ei ole järkeä yhteydessä asettaa defaulttiin. Näyttää hieman alempana inittab, kunnes näet rivin näin:

l5: 5: wait :/ etc / init.d / rc 5

Tämä linja laukaisee useimmat järjestelmän kokoonpanon ja palveluja rc *. D ja init.d hakemistoja. Voit nähdä, että init on asetettu suorittaa komennon Called / etc / init.d / rc 5 5 Kun ajotasolla. Odotus toiminta kertoo Milloin ja miten init ajaa komento: ajaa rc tullessaan runlevelistä 5 5 kerran, ja sitten odottaa tämän komennon loppuun ennen kuin teet mitään muuta.

On olemassa useita eri toimien lisäksi initdefault ja odota, erityisesti liittyvät virranhallinta, ja inittab (5) manuaalisivu kertoo kaiken niistä. Itse olet todennäköisimmin kohtaaminen, joka on selitetty seuraavissa osissa.

respawn

Respawn toiminta aiheuttaa init ajaa seuraavaan komentoon, ja jos komento Finishes täytäntöönpanosta, ajaa se uudelleen. Olet todennäköisesti nähdä jotain tämän kaltaista riville inittab:

1: 2345: respawn :/ sbin / mingetty tty1

Getty ohjelmat tarjoavat login ohjeita. Edellisen linja on ensimmäinen virtuaalikonsolista (/ dev / tty1), yksi näet kun painat ALT-tai Ctrl-Alt-F1 F1. Respawn toiminta tuo sisäänkirjautumispyyntöä takaisin, kun olet kirjautunut ulos.

ctrlaltdel

Ctrlaltdel toimintaa valvoo mitä järjestelmä tekee, kun painat Ctrl-Alt-Delete on virtuaalikonsolissa. Useimmissa järjestelmissä tämä on jonkinlainen reboot komennolla sammutuskomentoa.

sysinit

Sysinit toiminta on aivan ensimmäinen asia init Se pitäisi ajaa Kun se käynnistyy, ennen kuin hän mitään runleveleineen.

Miten prosessit ajotasoilla alkaa

Olet nyt valmis oppimaan, miten init käynnistää järjestelmän palvelut, juuri ennen kuin se voit kirjautua. Recall tämä inittab linjan Aiemmin:

l5: 5: wait :/ etc / init.d / rc 5

Tämä pieni rivi laukaisee Monia muitakin ohjelmia. rc tarkoittaa käynnistyskäskyihin, ja kuulet ihmiset viittaavat komentoja skriptejä, ohjelmia tai palveluita. Joten, missä nämä komennot, anyway?

Saat runlevelillä 5, tässä esimerkissä, komennot ovat todennäköisesti joko / etc / init.d / rc5.d tai / etc / rc5.d. Runlevel 1 käyttää rc1.d, runlevel 2 rc2.d käyttötarkoituksia, ja niin edelleen. Saatat löytää kohteita rc5.d GMT hakemistoon:

S10sysklogd S20ppp S99gpm
S12kerneld S25netstd_nfs S99httpd
S15netstd_init S30netstd_misc S99rmnologin
S18netbase S45pcmcia S99sshd
S20acct S89atd
S20logoutd S89cron

Rc 5 käsky käynnistää ohjelmia tällä Runlevel-hakemiston ajamalla GMT komennot:

S10sysklogd kotiin
S12kerneld kotiin
S15netstd_init kotiin
S18netbase kotiin

S99sshd kotiin

Huomaa alku argumentti jokaisen komennon. S komento tarkoittaa, että pitäisi ajaa komennon käynnistys tilassa, ja numero (00 läpi 99) määrittää, missä järjestyksessä rc alkaa komennolla.

Rc *. D komennot ovat komentoriviskriptejä jotka yleensä alkavat ohjelmat / sbin tai / usr / sbin. Normaalisti, voit selvittää, mitä jokin komento todellisuudessa ei katsomalla käsikirjoituksen vähemmän tai hakulaite Toinen ohjelma.

Voit aloittaa yksi näistä palveluista käsin. Jos esimerkiksi haluat aloittaa httpd Web-palvelin ohjelmisto manuaalisesti suorittamalla S99httpd alku. Vastaavasti, jos joskus täytyy tappaa yksi palvelujen Kun kone on päällä, voit suorittaa komennon rc *. D hakemistoon seis argumentti (S99httpd pysäkki, esimerkiksi).

Jotkut rc *. D hakemistoja jotka sisältävät komennot alkavat K (for "tappaa" tai pysäytetty). Tässä tapauksessa rc kulkee komennon pysäkki väitteen sijasta kotona. Olet todennäköisesti kohtaavat K komentoja ajotasoilla Se suljettiin järjestelmän.

Palveluiden lisäys ja poisto

Jos haluat lisätä, poistaa tai muuttaa palvelujen rc *. D hakemistoja, sinun täytyy ottaa tarkemmin tiedostot sisällä. Pitkä listaus paljastaa rakenne näin:

lrwxrwxrwx. . . S10sysklogd -> .. / init.d / sysklogd
lrwxrwxrwx. . . S12kerneld -> .. / init.d / kerneld
lrwxrwxrwx. . . S15netstd_init -> .. / init.d / netstd_init
lrwxrwxrwx. . . S18netbase -> .. / init.d / netbase

Komennot vuonna rc *. D hakemistoon todella symbolisia linkkejä tiedostoihin vuonna init.d hakemistoon, yleensä / etc tai / etc / rc.d. Nämä linkit Linux SISÄLTÄÄ että he voivat käyttää samaa käynnistyskomentosarjat kaikille runleveleineen. Tämä yleissopimus ei suinkaan Vaatimuksen, mutta usein tekee siitä hieman helpompaa organisaatio.

Estä yksi komentoja init.d hakemisto käynnissä erityisesti ajotasolla, luulisi poistaa symbolinen linkki Asianmukaiset rc *. D-hakemistossa. Toimii, mutta jos teet virheen ja koskaan tarvitse laittaa linkin takaisin paikalleen, saatat olla vaikeuksia muistaa tarkkaa nimeä linkkiä. Siksi sinun ei pitäisi poistaa linkkejä rc *. D hakemistoja, vaan pikemminkin lisätä alaviiva (_) alkuun linkin nimi näin:

mv S99httpd _S99httpd

Käynnistyksen aikana, rc jättää _S99httpd Koska se ei ala S tai K. Lisäksi alkuperäinen nimi on vielä selvät, ja sinulla on nopea pääsy komento, jos olet hyppysellinen ja haluat käynnistää sen käsin.

Voit lisätä palvelun, sinun on luotava script kuten muut init.d hakemistoon ja sitten tehdä symbolinen linkki oikeassa rc *. D-hakemistossa. Helpoin tapa kirjoittaa käsikirjoitus on tutkia skriptit jo init.d, kopioida yhden, että ymmärrät, ja muuttaa kopion.

Kun lisäät palvelua, varmista, että valitset sopivaan paikkaan käynnistykseen käynnistää palvelun. Jos palvelu käynnistyy liian aikaisin, se ei välttämättä toimi, koska riippuvuus Jotkut muut palvelut. Epäolennaisia ​​palvelut, useimmat järjestelmänvalvojat mieluummin numerot 90s, kun suurin osa palveluista, joita cam-järjestelmä.

Yleensä Linux-jakeluiden mukana komennon käyttöön ja poistaa palvelujen rc *. D hakemistoja. Esimerkiksi Debian, komento on päivitys-rc.d ja Red Hat Linux, komento on chkconfig. Graafiset käyttöliittymät ovat myös saatavilla. Näiden ohjelmien avulla auttaa pitämään käynnistyksen hakemistoja johdonmukainen ja auttaa päivityksiä.

VIHJE: Yksi yleisimmistä Linux asennus ongelmia on vuoden väärin konfiguroitu palvelin XFree86 Tämä elokuviin ja pois, jolloin järjestelmän käyttökelvottomaksi konsolilla. Voit lopettaa tämän ongelman käynnistäminen yhden käyttäjän tilassa ja muuttaa oman runlevelistä tai runlevelistä palveluja. Etsi jotain, jossa on xdm, gdm tai kdm oman rc *. D hakemistoja tai / etc / inittab.

Ohjaaminen init

Joskus sinun täytyy antaa init vähän potkia kertoa se vaihtaa ajotasoilla, lukea uudelleen inittab, tai vain sammuttaa järjestelmän. Koska init on aina ensimmäinen prosessi järjestelmän, STI prosessi ID on aina 1.

Voit ohjata init kanssa telinit. Esimerkiksi, jos haluat vaihtaa ajotasolle 3, käytä tätä komentoa:

telinit 3

Kun vaihdat Ajotasojen, init yrittää tappaa pois kaikki aren'ta Että prosessit inittab uuden runleveliltä. Siksi kannattaa olla varovainen muuttaminen runleveleineen.

Kun sinun tarvitsee lisätä tai poistaa respawning työpaikkoja tai tehdä muita muutoksia inittab, sinun täytyy kertoa init muutoksesta ja aiheuttaa sen uudelleen lukea tiedostoa. Jotkut käyttävät kill-HUP 1 kertoa init tehdä tätä. Tämä perinteinen menetelmä toimii useimmissa Unix, kunhan kirjoitat sen oikein. Voit kuitenkin myös suorittaa tämän telinit komennon:

telinit q

Voit myös käyttää telinit s siirtyä yhden käyttäjän tilassa.

sammuttamista

Myös init valvontaa miten järjestelmä sammuu ja käynnistyy uudelleen. Oikea tapa sammuttaa Linux-kone on käyttää sammutuskomentoa.

On kaksi perus tapaa käyttää shutdown. Jos sammuttaa järjestelmän, se sulkee koneen alas ja pitää sen alas. Jotta kone pysähtyi heti, käytä tätä komentoa:

shutdown-h now

Useimmissa nykyaikaiset koneet kohtuullisesti viime Linux-versioita, pysähtyi katkaisee virran koneeseen. Voit myös käynnistä kone. Uudelleenkäynnistystä, käytä-r-h eikä.

Sammutus kestää useita sekunteja. Sinun ei koskaan tulisi palauttaa tai sammuta kone tässä vaiheessa.

Edellisessä esimerkissä, nyt on aika sammuttaa. Tämä argumentti on pakollinen, mutta on monia tapoja määrittäminen sitä. Jos haluat koneen mennä alas joskus tulevaisuudessa, yksi tapa on käyttää + n, jossa n on määrä minuuttia sammutuksen odottaa, ennen kuin tekee pitäisi toimia. Muita vaihtoehtoja, katso shutdown (8) manuaalisivu.

Jotta järjestelmän uudelleenkäynnistyksen 10 minuuttia, suorita tämä komento:

shutdown-r + 10

Linux, shutdown ilmoittaa kenellekään kirjautuneena, että kone on menossa alaspäin, mutta se vähän todellista työtä. Jos määrittelet aikaa kuin nyt, shutdown Called Luo tiedosto / etc / nologin. Kun tuo tiedosto paikallaan, järjestelmä kieltää kirjautuminen kukaan muu kuin pääkäyttäjä.

Kun sammuttamaan aika vihdoin saapuu, shutdown kertoo init siirtyä ajotasolle 0 6 taistelujen lopettamista ja runlevelistä uudelleenkäynnistystä. Kun Syöttää runlevelistä init tai 0 6, kaikki tapahtuu seuraavaa, jonka voit tarkistaa katsomalla skriptit sisällä rc0.d ja rc6.d:

1. init tappaa jokaisen prosessin että se voi (koska se Kun vaihdat muita ajotasolla).

# Alkuperäisen rc0.d / rc6.d komentoja ajaa, lukitusjärjestelmä tiedostot paikalleen ja muun valmistelun shutdown.
# Seuraava rc0.d / rc6.d komentoja irrottaa kaikki tiedostojärjestelmät muiden kuin root.
# Lisäksi rc0.d / rc6.d komentoja asenna juuritiedostojärjestelmäksi vain lukea.
# Vielä rc0.d / rc6.d komennot kirjoitit kaikki puskuroidut ulos tiedostojärjestelmä synkronointi ohjelma.
# Lopullinen rc0.d / rc6.d komentoja kertoa ytimen käynnisty tai pysähtyy uudelleenkäynnistyksen pysähtymään tai poweroff ohjelman.

Reboot ja pysähtyi ohjelmat toimivat eri tavalla kunkin runlevelillä, mahdollisesti aiheuttaa sekaannusta. Oletuksena Nämä ohjelmat kutsuvat sammutus-r tai-h vaihtoehtoja, mutta jos järjestelmä on jo pysähtynyt tai reboot runlevelillä, ohjelmat kertovat ytimen katkaista itse välittömästi. Jos todella haluat sulkea koneen alas kiire (ottamatta huomioon mahdollisia vahinkoja häiriökäyttäytymistä shutdown), käyttää Optio-f.

Jätä kommentti

Tämä sivusto käyttää Akismetiä roskapostin vähentämiseksi. Lue, miten kommenttitietosi käsitellään.