LFCS: Stjórna kerfisræsingarferli og þjónustu (SysVinit, Systemd og Upstart) - 7. hluti
Fyrir nokkrum mánuðum síðan tilkynnti Linux Foundation LFCS (Linux Foundation Certified Sysadmin) vottunina, spennandi nýtt forrit sem hefur það að markmiði að leyfa einstaklingum frá öllum heimshornum að fá vottun í að framkvæma grunn til millistigs kerfisstjórnunarverkefni á Linux kerfum. Þetta felur í sér stuðning við kerfi og þjónustu sem þegar eru í gangi, ásamt fyrstu hendi að finna vandamál og greiningu, auk getu til að ákveða hvenær eigi að leggja mál fyrir verkfræðiteymi.
Eftirfarandi myndband lýsir stuttri kynningu á The Linux Foundation Certification Program.
Þessi færsla er hluti 7 af 10 kennsluröð, hér í þessum hluta munum við útskýra hvernig á að stjórna Linux kerfis gangsetningarferli og þjónustu, sem þarf fyrir LFCS vottunarprófið.
Stjórna Linux ræsingarferlinu
Ræsiferlið Linux kerfis samanstendur af nokkrum áföngum, hver táknuð með öðrum íhlut. Eftirfarandi skýringarmynd dregur stuttlega saman ræsingarferlið og sýnir alla helstu þætti sem taka þátt.
Þegar þú ýtir á Power hnappinn á vélinni þinni frumstillir fastbúnaðurinn sem er geymdur í EEPROM flís á móðurborðinu POST ( Power-On Self Test) til að athuga stöðu vélbúnaðarauðlinda kerfisins. Þegar POST er lokið leitar vélbúnaðurinn síðan og hleður 1. stigs ræsiforritinu, sem er staðsett í MBR eða í EFI skipting fyrsta tiltæka disksins og gefur honum stjórn.
MBR er staðsett í fyrsta geira disksins sem er merktur sem ræsanlegur í BIOS stillingunum og er 512 bæti að stærð.
- Fyrstu 446 bæti: Ræfillinn inniheldur bæði keyranlegan kóða og villuboðatexta.
- Næstu 64 bæti: Skiptingtaflan inniheldur skrá fyrir hverja af fjórum skiptingum (aðal eða útbreidd). Meðal annars gefur hver færsla til kynna stöðu (virk/ekki virk), stærð og upphafs-/lokageira hvers skiptingar.
- Síðustu 2 bæti: Töfratalan þjónar sem staðfestingarathugun á MBR.
Eftirfarandi skipun framkvæmir öryggisafrit af MBR (í þessu dæmi er /dev/sda fyrsti harði diskurinn). Skráin sem myndast, mbr.bkp getur komið sér vel ef skiptingartaflan verður skemmd, til dæmis, sem gerir kerfið óræsanlegt.
Til þess að geta notað það síðar ef þörf krefur, þurfum við að vista það og geyma það annars staðar (eins og USB drif, til dæmis). Sú skrá mun hjálpa okkur að endurheimta MBR og mun koma okkur af stað aftur ef og aðeins ef við breytum ekki harða disknum á meðan.
# dd if=/dev/sda of=mbr.bkp bs=512 count=1
# dd if=mbr.bkp of=/dev/sda bs=512 count=1
Fyrir kerfi sem nota EFI/UEFI aðferðina les UEFI vélbúnaðinn stillingar sínar til að ákvarða hvaða UEFI forrit á að ræsa og hvaðan (þ.e.a.s. á hvaða diski og skipting EFI skipting er staðsett).
Næst er 2nd stage ræsiforritið (aka boot manager) hlaðið og keyrt. GRUB [GRand Unified Boot] er mest notaði ræsistjórinn í Linux. Ein af tveimur aðskildum útgáfum er að finna á flestum kerfum sem notuð eru í dag.
- Eldri GRUB stillingarskrá: /boot/grub/menu.lst (eldri dreifingar, ekki studd af EFI/UEFI fastbúnaði).
- GRUB2 stillingarskrá: líklegast /etc/default/grub.
Þótt markmið LFCS prófsins biðji ekki beinlínis um þekkingu um GRUB innri hluti, ef þú ert hugrakkur og hefur efni á að klúðra kerfinu þínu (þú gætir viljað prófa það fyrst á sýndarvél, bara ef þú vilt), þarftu að keyra.
# update-grub
Sem rót eftir að hafa breytt uppsetningu GRUB til að beita breytingunum.
Í grundvallaratriðum hleður GRUB sjálfgefna kjarnanum og initrd eða initramfs myndinni. Í fáum orðum, initrd eða initramfs hjálpa til við að framkvæma uppgötvun vélbúnaðar, hleðslu kjarnaeiningarinnar og uppgötvun tækisins sem er nauðsynleg til að koma upp raunverulegu rótarskráarkerfinu.
Þegar hið raunverulega rót skráarkerfi er komið upp, keyrir kjarninn kerfis- og þjónustustjórann (init eða systemd, þar sem ferli auðkenni eða PID er alltaf 1) til að hefja venjulegan notanda- geimræsingarferli til að kynna notendaviðmót.
Bæði init og systemd eru púkar (bakgrunnsferli) sem stjórna öðrum púkum, sem fyrsta þjónustan sem byrjar (meðan á ræsingu stendur) og síðasta þjónustan sem lýkur (meðan er lokun).
Byrjunarþjónusta (SysVinit)
Hugmyndin um runlevels í Linux tilgreinir mismunandi leiðir til að nota kerfi með því að stjórna hvaða þjónustur eru í gangi. Með öðrum orðum, keyrslustig stjórnar hvaða verkefnum er hægt að framkvæma í núverandi framkvæmdarstöðu = keyrslustig (og hverjir geta ekki).
Hefð er fyrir því að þetta ræsingarferli var framkvæmt á grundvelli hefðbundinna aðferða sem áttu uppruna sinn í System V UNIX, þar sem kerfið sendi frá sér söfn af forskriftum sem hefja og stöðva þjónustu þegar vélin fór inn á ákveðið keyrslustig (sem, með öðrum orðum , er önnur aðferð til að keyra kerfið).
Innan hvers keyrslustigs er hægt að stilla einstakar þjónustur til að keyra eða leggja þær niður ef þær eru í gangi. Nýjustu útgáfur af sumum helstu dreifingum eru að hverfa frá System V staðlinum í þágu frekar nýrrar þjónustu og kerfisstjóra sem heitir systemd (sem stendur fyrir system daemon), en venjulega styðja sysv skipanir í samhæfisskyni. Þetta þýðir að þú getur keyrt flest vel þekkt sysv init verkfæri í kerfisbundinni dreifingu.
Lestu líka: Hvers vegna 'systemd' kemur í stað 'init' í Linux
Auk þess að hefja kerfisferlið lítur init á /etc/inittab skrána til að ákveða hvaða keyrslustig þarf að slá inn.
Til að skipta á milli keyrslustiga getum við einfaldlega gefið út keyrslustigsbreytingu með init skipuninni: init N (þar sem N er eitt af keyrslustigunum sem taldar eru upp hér að ofan). Vinsamlegast athugaðu að þetta er ekki ráðlögð leið til að taka keyrt kerfi á annað keyrslustig vegna þess að það gefur enga viðvörun til núverandi innskráða notenda (þar með því að þeir missa vinnu og ferlum lýkur óeðlilega).
Þess í stað ætti að nota skipunina shutdown til að endurræsa kerfið (sem sendir fyrst viðvörunarskilaboð til allra innskráða notenda og lokar fyrir frekari innskráningu; það gefur síðan merki um að skipta um keyrslustig); hins vegar verður að breyta sjálfgefna keyrslustigi (það sem kerfið mun ræsa í) fyrst í /etc/inittab skránni.
Af þeirri ástæðu skaltu fylgja þessum skrefum til að skipta almennilega á milli keyrslustiga, Sem rót skaltu leita að eftirfarandi línu í /etc/inittab.
id:2:initdefault:
og breyttu númerinu 2 fyrir æskilegt keyrslustig með textaritlinum sem þú vilt, eins og vim (lýst í Hvernig á að nota vi/vim ritstjórann í Linux - Part 2 af þessari röð).
Næst skaltu keyra sem rót.
# shutdown -r now
Þessi síðasta skipun mun endurræsa kerfið, sem veldur því að það byrjar á tilgreindu keyrslustigi við næstu ræsingu, og mun keyra forskriftirnar sem eru staðsettar í /etc/rc[runlevel].d skrá til að ákveða hvaða þjónustu ætti að hefja og hverjar ekki. Til dæmis, fyrir runlevel 2 í eftirfarandi kerfi.
Til að virkja eða slökkva á kerfisþjónustu við ræsingu munum við nota chkconfig skipunina í CentOS/openSUSE og sysv-rc-conf í Debian og afleiður. Þetta tól getur einnig sýnt okkur hvað er forstillt ástand þjónustu fyrir tiltekið keyrslustig.
Lestu líka: Hvernig á að stöðva og slökkva á óæskilegri þjónustu í Linux
Skráning á runlevel stillingu fyrir þjónustu.
# chkconfig --list [service name] # chkconfig --list postfix # chkconfig --list mysqld
Á myndinni hér að ofan getum við séð að postfix er stillt á að byrja þegar kerfið fer inn á keyrslustig 2 til 5, en mysqld b> verður sjálfgefið í gangi fyrir keyrslustig 2 til 4. Segjum nú að þetta sé ekki sú hegðun sem búist er við.
Til dæmis þurfum við að kveikja á mysqld fyrir keyrslustig 5 líka og slökkva á postfix fyrir keyrslustig 4 og 5. Hér er það sem við myndum gera í hverju tilviki (keyra eftirfarandi skipanir sem rót).
# chkconfig --level [level(s)] service on # chkconfig --level 5 mysqld on
# chkconfig --level [level(s)] service off # chkconfig --level 45 postfix off
Við munum nú framkvæma svipuð verkefni í Debian byggt kerfi með því að nota sysv-rc-conf.
Að stilla þjónustu þannig að hún ræsist sjálfkrafa á tilteknu keyrslustigi og kemur í veg fyrir að hún byrji á öllum öðrum.
1. Notum eftirfarandi skipun til að sjá hvaða keyrslustig eru þar sem mdadm er stillt til að byrja.
# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'
2. Við munum nota sysv-rc-conf til að koma í veg fyrir að mdadm byrji á öllum keyrslustigum nema 2. Bara hakaðu við eða taktu hakið af (með bilstönginni) eins og þú vilt (þú getur fært þig upp, niður, til vinstri og hægri með örvatökkunum).
# sysv-rc-conf
Ýttu síðan á q til að hætta.
3. Við munum endurræsa kerfið og keyra aftur skipunina frá SKREF 1.
# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'
Í myndinni hér að ofan getum við séð að mdadm er stillt til að byrja aðeins á keyrslustigi 2.
Hvað með systemd?
systemd er annar þjónustu- og kerfisstjóri sem er tekinn upp af nokkrum helstu Linux dreifingum. Það miðar að því að leyfa meiri vinnslu að fara fram samhliða við ræsingu kerfisins (ólíkt sysvinit, sem hefur alltaf tilhneigingu til að vera hægara vegna þess að það byrjar ferli eitt í einu, athugar hvort eitt sé háð öðru og bíður eftir púkar til að ræsa svo fleiri þjónustur geti hafist), og til að þjóna sem kraftmikil auðlindastjórnun fyrir keyrt kerfi.
Þannig er þjónusta ræst þegar þörf krefur (til að forðast neyslu kerfisauðlinda) í stað þess að vera ræst án haldbærrar ástæðu við ræsingu.
Til að skoða stöðu allra ferla sem keyra á kerfinu þínu, bæði systemd innfædd og SysV þjónustu, keyrðu eftirfarandi skipun.
# systemctl
LOAD dálkurinn sýnir hvort einingaskilgreiningin (sjá dálkinn UNIT, sem sýnir þjónustuna eða eitthvað sem er viðhaldið af systemd) hafi verið rétt hlaðið, en ACTIVE og SUB dálkar sýna núverandi stöðu slíkrar einingar.
Þegar VIRK dálkurinn gefur til kynna að staða einingarinnar sé önnur en virk, getum við athugað hvað gerðist með því að nota.
# systemctl status [unit]
Til dæmis, á myndinni hér að ofan, er media-samba.mount í biluðu ástandi. Við skulum hlaupa.
# systemctl status media-samba.mount
Við sjáum að media-samba.mount mistókst vegna þess að tengingarferlið á hýsil dev1 gat ekki fundið nethlutdeildina á //192.168.0.10/gacanepa.
Að hefja eða stöðva þjónustu
Þegar nethlutdeildin //192.168.0.10/gacanepa verður tiltæk, reynum að byrja, hætta síðan og að lokum endurræsa eininguna media-samba.mount. Eftir að hafa framkvæmt hverja aðgerð skulum við keyra systemctl status media-samba.mount til að athuga stöðu þess.
# systemctl start media-samba.mount # systemctl status media-samba.mount # systemctl stop media-samba.mount # systemctl restart media-samba.mount # systemctl status media-samba.mount
Undir systemd geturðu virkjað eða slökkt á þjónustu þegar hún ræsist.
# systemctl enable [service] # enable a service # systemctl disable [service] # prevent a service from starting at boot
Ferlið við að virkja eða slökkva á þjónustu til að byrja sjálfkrafa við ræsingu felst í því að bæta við eða fjarlægja táknræna tengla í /etc/systemd/system/multi-user.target.wants möppunni.
Að öðrum kosti geturðu fundið út núverandi stöðu þjónustu (virkjað eða óvirk) með skipuninni.
# systemctl is-enabled [service]
Til dæmis,
# systemctl is-enabled postfix.service
Að auki geturðu endurræst eða slökkt á kerfinu með.
# systemctl reboot # systemctl shutdown
Uppkominn
Upstart er atburðabundin staðgengill fyrir /sbin/init púkann og er fæddur út frá þörfinni á að hefja þjónustu eingöngu, þegar hennar er þörf (einnig eftirlit með þeim á meðan þeir eru í gangi), og meðhöndla atburði eins og þeir eiga sér stað og fara þannig fram úr klassíska sysvinit kerfinu sem byggir á ávanabindingu.
Það var upphaflega þróað fyrir Ubuntu dreifinguna, en er notað í Red Hat Enterprise Linux 6.0. Þó það hafi verið ætlað að vera hentugur fyrir dreifingu í öllum Linux dreifingum í staðinn fyrir sysvinit, var það með tímanum skyggt á systemd. Þann 14. febrúar 2014 tilkynnti Mark Shuttleworth (stofnandi Canonical Ltd.) að framtíðarútgáfur af Ubuntu myndu nota systemd sem sjálfgefna init-púkinn.
Vegna þess að SysV ræsiforritið fyrir kerfið hefur verið svo algengt svo lengi, inniheldur mikill fjöldi hugbúnaðarpakka SysV ræsiforskriftir. Til að koma til móts við slíka pakka býður Upstart upp á samhæfnistillingu: Það keyrir SysV ræsiforskriftir á venjulegum stöðum (/etc/rc.d/rc?.d, /etc/init.d/ rc?.d, /etc/rc?.d, eða svipaðan stað). Þannig að ef við setjum upp pakka sem inniheldur ekki Upstart stillingarhandrit, ætti hann samt að ræsa á venjulegan hátt.
Ennfremur, ef við höfum sett upp tól eins og chkconfig, ættir þú að geta notað þau til að stjórna SysV-undirstaða þjónustu þinni alveg eins og við myndum gera á sysvinit byggðum kerfum.
Upstart forskriftir styðja einnig ræsingu eða stöðvun þjónustu sem byggir á fjölbreyttari aðgerðum en SysV ræsingarforskriftir; Til dæmis getur Upstart ræst þjónustu þegar tiltekið vélbúnaðartæki er tengt við.
Kerfi sem notar Upstart og innbyggða forskriftir þess kemur eingöngu í stað /etc/inittab skránnar og runlevel-sértæku SysV ræsiforskriftaskrárnar fyrir .conf forskriftir í /etc/init möppunni.
Þessar *.conf forskriftir (einnig þekktar sem starfsskilgreiningar) samanstanda almennt af eftirfarandi:
- Lýsing á ferlinu.
- Kunststig þar sem ferlið ætti að keyra eða atburðir sem ættu að koma því af stað.
- Run levels þar sem ferli ætti að stöðva eða atburði sem ættu að stöðva það.
- Valkostir.
- Skipun til að ræsa ferlið.
Til dæmis,
# My test service - Upstart script demo description "Here goes the description of 'My test service'" author "Dave Null <[email >" # Stanzas # # Stanzas define when and how a process is started and stopped # See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn # When to start the service start on runlevel [2345] # When to stop the service stop on runlevel [016] # Automatically restart process in case of crash respawn # Specify working directory chdir /home/dave/myfiles # Specify the process/command (add arguments if needed) to run exec bash backup.sh arg1 arg2
Til að beita breytingum þarftu að segja upstart að endurhlaða stillingar sínar.
# initctl reload-configuration
Byrjaðu síðan starf þitt með því að slá inn eftirfarandi skipun.
$ sudo start yourjobname
Þar sem yourjobname er nafnið á starfinu sem var bætt við áðan með yourjobname.conf forskriftinni.
Fullkomnari og ítarlegri handbók fyrir Upstart er að finna á vefsíðu verkefnisins undir valmyndinni „Matreiðslubók“.
Samantekt
Þekking á Linux ræsiferlinu er nauðsynleg til að hjálpa þér við bilanaleit verkefni sem og við að laga afköst tölvunnar og keyra þjónustu að þínum þörfum.
Í þessari grein höfum við greint hvað gerist frá því augnabliki þegar þú ýtir á Power rofann til að kveikja á vélinni þar til þú færð fullkomlega virkt notendaviðmót. Ég vona að þú hafir lært að lesa hana jafn mikið og ég þegar ég setti hana saman. Ekki hika við að skilja eftir athugasemdir eða spurningar hér að neðan. Við hlökkum alltaf til að heyra frá lesendum okkar!