Linux saapad

Nagu selgub, ei ole palju, et boot protsess:

1. Alglaadur Leiab kernel image kettale, laeb mällu ning alustab ta.
2. Kernel initsialiseerida seadmed ja STI draivereid.
3. Kernel alustest juurfailisüsteemis.
4. Kernel käivitub init Called ajastada.
5. init seab ülejäänud protsessid liikuma.
6. Viimane protsesside init starts osana boot jada võimaldab teil sisse logida.

Tuvastamine igas etapis boot protsess on hindamatu, millega boot probleeme ja mõista süsteemi tervikuna. Et alustada, null käynnistyslataimen, milleks on esialgse ekraanil või paluda teil pärast arvuti ei suguhaigusi sisselülitamislamp self-test, paludes Milline operatsioonisüsteem käivitada. Pärast teete valiku, käynnistyslataimen jookseb Linuxi tuuma, teisaldus- kontrolli süsteemi tuuma.

On üksikasjalik arutelu kernel mujal selles raamatus, millest see artikkel on koolitusprogrammist. See artikkel hõlmab kernel käivitamise etapil, Etapi Kui kernel prindib hunnik sõnumeid riistvara olemas süsteem. Kernel käivitub init lihtsalt pärast seda kuvab teate, kuulutades, kui tuum on paigaldatud juurfailisüsteemis:

VFS: Paigaldatakse root (ext2 failisüsteemi) lugemiseks.

Varsti pärast Kas näed sõnum init algus, millele järgneb süsteemi teenuse käivitamise sõnumeid ja lõpuks saad sisselogimisviip mingisugune.

MÄRKUSED : On Red Hat Linux, Init märgib eriti ilmne, Sest see "tervitab" saate "Red Hat Linux." Kõik kirjad seejärel näidata edu või ebaedu Sulgudes paremal pool ekraani.

Enamik selles peatükis käsitletakse init, sest see on, kui osa boot jada teil on kõige kontrolli.
init

Ei ole midagi erilist init. See on ajakava nagu iga teine ​​Linuxi süsteemi, ja sa leiad selle / sbin koos teiste kahendfailide. Peamine eesmärk init on alustada ja lõpetada teiste programmide erilist jada. Kõik, mida pead teadma, on see, kuidas see jada töötab.

Siin on mõned erinevad variandid, kuid enamik Linuxi kasutada System V stiilis arutatud siin. Mõned distributsioonid kasutavad lihtsamat versiooni, mis sarnaneb BSD init, kuid siis on ebatõenäoline, et tekib selline.

Töötasemete

Igal ajahetkel on Linuxi süsteemi, komplekt baasi Teatud protsesse töötab. See riik on masin nimetatakse ITS töötasemele ning see on tähistatud number 0 6 kaudu. Süsteem veedab enamiku suguhaigusi aeg ühes töötasemele. Samas, kui sa kinni masina alla, init lülitub teisele töötasemele et lõppenud aasta System Services korrektselt ja temal öelda kernel lõpetada. Järjekordne töötasemele on ühe kasutaja ¾ juttu.

Lihtsaim viis saada käepide käivitustasemeid on uurida init konfiguratsioonifaili / etc / inittab. Vaata line selline:

id: 5: initdefault:

See rida tähendab, et vaiketöötase süsteemis on 5. Kõik read inittab fail seda vormi, millel on neli valdkondades eraldatud kooloniga esinevad järgmises järjekorras:
# Kordumatu tunnus (lühike string, näiteks ID eelmises näites)
# Kohaldatav töötasemele number (numbrid)
# Init, mis peaks tegutsema (eelmises näites, et hagi on seada vaiketöötase et 5)
# Käsu (vabatahtlik)

Ei ole käsu eelmises initdefault näiteks sellepärast, et käsk ei ole mõtet kontekstis, milles vaiketöötaseme. Vaata veidi kaugemale alla inittab, kuni näed sellist rida:

l5: 5: ootama :/ etc / rc.d / rc 5

See rida käivitab enamik süsteemi konfiguratsiooni ja teenuste kaudu rc *. D ja init.d kataloogi. Te näete, et init on määratud käsu / etc / rc.d / rc 5 5 Kui töötase. Wait tegevus näitab, millal ja kuidas init annab käsu: käivitada rc sisenedes töötasemele 5 5 kord, ja seejärel oodata selle käsu lõpetada enne teeme midagi muud.

Seal on mitmeid erinevaid meetmeid lisaks initdefault ja ootama, eriti mis on seotud võimsuse juhtimise ja inittab (5) manuali ütleb kõik nende kohta. Need, sa oled kõige tõenäolisemalt kokku puutuvad, mis on selgitatud järgnevates osades.

respawn

Respawn tegevus põhjustab init käivitada käsu järgmiselt ja kui käsk Lõpetab täidesaatva, käivitada see uuesti. Sa oled tõenäoliselt näha midagi sarnast selle rea oma inittab faili:

1: 2345: respawn :/ sbin / mingetty tty1

Getty programmid annavad login juhiseid. Eelmise rea on esimene virtuaalne konsool (/ dev / tty1), üks näed Kui vajutad ALT või KONTROLLI ALT-F1 F1. Respawn tegevus toob sisselogimisviip tagasi pärast välja logida.

ctrlaltdel

Ctrlaltdel tegevuse kontroll, mida süsteem teeb, kui vajutate KONTROLLI ALT-DELETE kohta virtuaalse konsooli. On kõige süsteemid, see on Mingisugune reboot käsu abil shutdown käsk.

sysinit

Sysinit tegevus on kõige esimene asi, init, mis peaks kulgema hetkest, kui see käivitub, enne ühegi käivitustasemeid.

Kuidas protsessid käivitustasemeid alustada

Olete nüüd valmis õppima, kuidas init käivitab süsteemi teenuseid, vahetult enne saate sisse logida. Meenuta seda inittab joont Varem:

l5: 5: ootama :/ etc / rc.d / rc 5

See väike rida käivitab paljud muud programmid. RC tähistab käivituskäsk ja kuuled inimesi viidata käske skripte, programme või teenuseid. Nii, kus on need käsud, anyway?

Sest töötasemele 5 selles näites, käsud on ilmselt kas / etc / rc.d / rc5.d või / etc / rc5.d. Käivitustase 1 kasutab rc1.d, töötasemele 2 rc2.d kasutab ja nii edasi. Te võite leida objektide rc5.d GMT kataloog:

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

Rc käivitab 5 programme selles töötase kataloog käivitades järgmised käsud:

S10sysklogd kodu
S12kerneld kodu
S15netstd_init kodu
S18netbase kodu
...
S99sshd kodu

Märka start argument iga käsu. S käsk nimi tähendab, et käsk should run lähterežiimis ja number (00 läbi 99) määrab, kuhu järjekorras RC hakkab käsk.

RC * käsud tavaliselt shelliskriptides .D See Start Programs / sbin või / usr / sbin. Tavaliselt saate aru saada, mida üks käsud tegelikult teeb vaadates skripti vähem või muu piipar programm.

Te võite alustada üks neist sümbolid teenuste käsitsi. Näiteks, kui te soovite alustada httpd veebiserveri tarkvara käsitsi käivitada S99httpd algus. Samamoodi, kui te kunagi vaja tappa üks teenuseid, kui masin on sisse lülitatud, saate käivitada käsk rc * kataloogis stop argument .D (S99httpd lõpetada, näiteks).

Mõned rc * kataloogid .D mis sisaldavad käsud algavad K (jaoks "tappa" või stopp-režiim). Sel juhul rc jookseb käsu stop argument asemel kodus. Te kõige tõenäolisemalt kokku puutuvad K käske käivitustasemeid See Sule süsteem.

Lisamine ja eemaldamine teenused

Kui soovite lisada, kustutada või muuta teenuste rc * .D kataloogid, peate võtma lähemalt faili sees. Info pikas paljastab struktuur näeb välja selline:

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

Käsud aasta .D rc * kataloog on tegelikult viitu failidele aasta init.d kataloogi, tavaliselt / etc või /etc/rc.d. Linuxi need sisaldavad NEED, mis seob seda saab kasutada sama käivitusskriptid kõigi käivitustasemeid. See tava ei ole sugugi Nõude, kuid sageli muudab veidi lihtsamaks organisatsioon.

Et takistada ühel käske init.d kataloog töötab konkreetses töötase, siis võiks arvata, et kõrvaldada viitu sisse rc * .D kindlas kataloogis. See toimib, aga kui sa teed vea ja kunagi on vaja panna lingi armunud, siis võib olla raske meeles pidada täpset nime link. Seetõttu ei tohi te eemaldada linke rc * kataloogid .D, vaid pigem lisada alakriips (_) algusega link nime niimoodi:

mv S99httpd _S99httpd

Buutimise ajal, rc ignoreerib _S99httpd Sest see ei alga S või K. Lisaks algne nimi on endiselt ilmne, ja sul on kiire juurdepääsu käsk, kui sa oled näputäis ja vaja hakata seda käega.

Lisada teenust, peate te endale script nagu teised init.d kataloogi ja seejärel nimeviida õige rc * .D kataloogi. Lihtsaim viis kirjutada script on uurida skripte juba init.d, koopia teha üks, et saate aru, ja muuta koopia.

Kui lisate teenus, veenduge, et valite Sel aastal NÕUETELE nagu algkäivitusjärjekorras käivitada teenus. Kui teenus alustab liiga kiiresti, ei pruugi see toimida, sest sõltuvus Mõni teenust. Mitteoluliste teenuste kõige administraatorid eelistavad numbrid 90s pärast enamik teenuseid, mis cam süsteemiga.

Linuxi tavaliselt tulevad käsu sisse ja välja lülitada teenuste rc * .D katalooge. Näiteks Debian, käsk on update-rc.d ja Red Hat Linux, käsk on chkconfig. Graafilised kasutajaliidesed on ka olemas. Programmide kasutamine NEED hoiab startup kataloogid järjekindel ja aitab uuendamine.

VIHJE: Üks levinumaid Linux installi probleemid on valesti konfigureeritud XFree86 aastal, kinos ja välja server, mis muudab süsteemi kasutamiskõlbmatuks konsooli. Lõpetage see käitumine, alglaadimise ühe kasutaja režiimi ja muuda oma töötase või töötase teenuseid. Vaata midagi, mis sisaldab xdm, GDM või kdm oma rc * .D kataloogidest või / etc / inittab.

Controlling init

Mõnikord sa pead andma init vähe kick öelda seda, et lülituda käivitustasemeid, et uuesti lugeda inittab faili, või lihtsalt sulgeda süsteem. Kuna init on alati esimene protsess süsteemi, STI protsessi ID on alati 1.

Saate kontrollida init koos telinit. Näiteks kui sa tahad minna töötase 3, seda käsku kasutada:

telinit 3

Kui lülitate käivitustasemeid, init üritab tappa iga protsesse, mis ei ole inittab faili uus töötase. Seega sa should ettevaatlik muutmine käivitustasemeid.

Kui teil on vaja lisada või eemaldada respawning töökohta või teha muid muudatusi, et inittab faili, peate te init umbes muutusi ja põhjustada seda, et uuesti lugeda faili. Mõned inimesed kasutavad tappa -HUP 1 öelda init seda teha. See traditsiooniline meetod töötab kõige versioone Unix, kui sa kirjutad seda õigesti. Siiski, saate käivitada see telinit käsk ka:

telinit q

Samuti võite kasutada telinit s lülituda ühe kasutaja režiimis.

Suletakse

Samuti init määrab, kuidas süsteem sulgub ja taaskäivitub. Õige sulgeda Linux masin on kasutada shutdown käsk.

On kaks peamist võimalust kasutada shutdown. Kui teil peatada süsteemi, lülitub masin maha ja hoiab selle alla. Et masin peatada kohe, kasuta seda käsku:

shutdown-H nüüd

On kõige kaasaegsemaid masinaid mõistlikult uuemat versiooni Linux, peatus lõikab võimu masin. Samuti saab masina taaskäivitamisest. Reboot, kasutage r ASEMEL H.

Shutdown võtab mitu sekundit. Sa should kunagi nullitud või lülitage masin Selles etapis.

Eelmises näites, nüüd on aeg kinni pandud. See argument on kohustuslik, kuid seal on palju võimalusi täpsustada seda. Kui soovite, et masin minna millalgi tulevikus, üks võimalus on kasutada + n, kus n on minutite arv shutdown wait should Enne teeme oma tööd. Teiste valikute jaoks vaatate shutdown (8) käsitsi lehele.

Et süsteemi reboot 10 minuti käivitada käsk:

shutdown-R + 10

Linux, seiskamine ei teata keegi sisse logitud, et masin läheb alla, kuid see ei vähe tegelikku tööd. Kui määrate aja peale nüüd, seiskamine Called Loob faili / etc / nologin. Kui see fail on olemas, süsteem keelab logima igaüks, välja arvatud root.

Kui süsteemi seiskamise aeg lõpuks saabub, shutdown pajatab init minna töötase 0 külmutada ja töötase 6 reboot. Kui init siseneb töötase 0 või 6, kõik järgmised on arvamusel, nagu kus saate kontrollida, vaadates skriptid sees rc0.d ja rc6.d:

1. Iga init protsess tapab, et see võib (kui see Minnes muid töötase).

# Esialgne rc0.d / rc6.d käske käivitada, lukustussüsteem failid armastust ja teha muid ettevalmistusi shutdown.
# Järgmine rc0.d / käsud lahutada kõik failisüsteemid rc6.d peale root.
# Lisaks rc0.d / käsud paigalda juurfailisüsteemis rc6.d ainult lugemiseks.
# Veelgi rc0.d / rc6.d käske kirjutage kõik puhverdatud on välja failisüsteemi koos sünkroniseerimise programm.
# Lõplik rc0.d / rc6.d käske öelda kernel reboot või lõpe reboot, peatada või täielikuks väljalülitamiseks programmi.

Reboot ja peatada Programs käituda erinevalt iga töötase, mis võib põhjustada segadust. Vaikimisi need sümbolid Programs helistada shutdown koos-R või-H võimalusi, aga kui süsteem on juba peatada või reboot töötase, Programs öelda kernel sulgeda ennast välja kohe. Kui sa tõesti tahad sulgeda oma masina alla kiirusta (jättes kõrvale kõik kahju korrastamata shutdown Võimalikud) kasuta-f valik.

Jäta kommentaar