LFCS: Ulgamyň başlangyç prosesini we hyzmatlaryny dolandyrmak (SysVinit, Systemd we Upstart) - 7-nji bölüm


Birnäçe aý öň Linux gaznasy LFCS (Linux Foundation Certified Sysadmin) kepilnamasyny yglan etdi, bu maksat dünýäniň dürli künjeklerinden adamlara Linux ulgamlarynda aralyk ulgam dolandyryş meselelerini ýerine ýetirmekde sertifikat almaga mümkinçilik berýän gyzykly täze programma. Bu, ilkinji nobatda işleýän ulgamlary we hyzmatlary goldamak, ilkinji gezek meseläni tapmak we derňemek bilen birlikde, in engineeringenerçilik toparlaryna haçan meseläni gozgamalydygyny kesgitlemek ukybyny öz içine alýar.

Aşakdaky wideo Linux gaznasynyň sertifikatlaşdyryş programmasy bilen gysgaça tanyşdyryşy beýan edýär.

Bu ýazgy, 10 sapakly tapgyryň 7-nji bölümi, bu bölümde, LFCS sertifikat synagy üçin zerur bolan Linux Ulgam Başlangyç Prosessini we Hyzmatlaryny nädip dolandyrmalydygyny düşündireris.

Linux başlangyç amalyny dolandyrmak

Linux ulgamynyň açmak prosesi birnäçe fazadan ybarat bolup, hersi dürli komponent bilen görkezilýär. Aşakdaky diagramma ýükleme prosesini gysgaça jemleýär we ähli esasy komponentleri görkezýär.

Enjamyňyzdaky Güýç düwmesine basanyňyzda, anakartdaky EEPROM çipinde saklanýan programma üpjünçiligi POST () başlaýar. Ulgamyň enjam çeşmeleriniň ýagdaýyny barlamak üçin Power-On Self Test ). POST gutarandan soň, programma üpjünçiligi MBR ýa-da EFI-de ýerleşýän 1-nji tapgyra ýükleýjini gözleýär we ýükleýär. ilkinji elýeterli diskiň bölümi we oňa gözegçilik edýär.

MBR BIOS sazlamalarynda ýüklenip bilinýän diskiň birinji sektorynda ýerleşýär we ululygy 512 baýt.

  1. Ilkinji 446 baýt : bootükleýjide ýerine ýetirilýän kod hem, ýalňyş habary teksti hem bar.
  2. Indiki 64 baýt : Bölüm tablisasynda dört bölümiň (başlangyç ýa-da uzaldylan) her biri üçin ýazgy bar. Beýleki zatlaryň arasynda, her ýazgy her bölümiň ýagdaýyny (işjeň/işjeň däl), ululygyny we başlangyç/ahyrky pudaklaryny görkezýär.
  3. Soňky 2 baýt : Jadyly san MBR-ni barlamak barlagy bolup hyzmat edýär.

Aşakdaky buýruk MBR ätiýaçlyk nusgasyny ýerine ýetirýär (bu mysalda /dev/sda ilkinji gaty diskdir). Alnan faýl, mbr.bkp , bölüniş tablisasy zaýalanan halatynda, meselem, ulgamy açyp bolmajak görnüşde görkezip biler.

Elbetde, zerurlyk ýüze çyksa soň ulanmak üçin ony tygşytlamaly we başga bir ýerde saklamaly bolarys (mysal üçin USB sürüjisi ýaly). Şol faýl MBR-i dikeltmäge kömek eder we diňe şol aralykda gaty diskiň ýerleşişini üýtgetmesek, ýene bir gezek ýol açarys.

# dd if=/dev/sda of=mbr.bkp bs=512 count=1
# dd if=mbr.bkp of=/dev/sda bs=512 count=1

EFI / UEFI usulyny ulanýan ulgamlar üçin UEFI programma üpjünçiligi haýsy UEFI programmasynyň işe giriziljekdigini we nireden (meselem, haýsy diskde we bölekde) kesgitlemek üçin sazlamalaryny okaýar. EFI bölümi ýerleşýär).

Ondan soň, 2-nji tapgyra ýükleýji (aka boot manager) ýüklenýär we işleýär. GRUB [ GRand Unified Boot ] Linux-da iň köp ulanylýan boot menejeri. Häzirki wagtda ulanylýan ulgamlaryň köpüsinde iki dürli wersiýany tapyp bilersiňiz.

  1. GRUB miras konfigurasiýa faýly : /boot/grub/menu.lst (köne paýlamalar, EFI/UEFI firmalary tarapyndan goldanylmaýar).
  2. GRUB2 konfigurasiýa faýly : ähtimal,/etc/default/grub.

LFCS ekzameniniň maksatlary, batyrgaý bolsaňyz we ulgamyňyzy bulaşdyryp bilýän bolsaňyz, GRUB içerki adamlar hakda aç-açan bilim talap etmeýän bolsa-da (synap görmek isläp bilersiňiz) ilki wirtual maşynda, diňe şeýle bolsa) işlemeli.

# update-grub

Üýtgeşmeleri ulanmak üçin GRUB-yň konfigurasiýasyny üýtgedensoň kök hökmünde.

Esasan, GRUB deslapky ýadrosy we initrd ýa-da initramfs şekilini ýükleýär. Birnäçe söz bilen aýdylanda, initrd ýa-da initramflar enjamy kesgitlemegi, ýadro modulyny ýüklemegi we hakyky kök faýl ulgamyny gurmak üçin zerur bolan enjam açyşyny amala aşyrmaga kömek edýär.

Hakyky kök faýl ulgamy gurlansoň, ýadro adaty ulanyjyny başlamak üçin ulgamy we hyzmat dolandyryjysyny ( init ýa-da systemd ýerine ýetirýär). ulanyjy interfeýsini görkezmek üçin boş ýer açmak prosesi.

init we systemd ikisi hem beýleki daemonlary dolandyrýan daemonlar (fon amallary), sebäbi başlanan ilkinji hyzmat (boot wagtynda) we iň soňky hyzmat (ýapylýan wagtynda).

Başlangyç hyzmatlary (SysVinit)

Linux-da işleýiş derejeleri düşünjesi haýsy hyzmatlaryň işleýändigini gözegçilikde saklamak arkaly ulgamy ulanmagyň dürli usullaryny kesgitleýär. Başga sözler bilen aýdylanda, bir dereje häzirki ýerine ýetiriş ýagdaýynda haýsy wezipeleri ýerine ýetirip boljakdygyny=runlevel (we haýsylary edip bilmeýär) gözegçilik edýär.

Däp bolşy ýaly, bu başlangyç prosesi Ulgam V UNIX bilen döredilen konwensiýalara esaslanyp, ulgam belli bir derejä gireninde hyzmatlary başlaýan we bes edýän skriptler ýygyndysyny ýerine ýetirýär. , ulgamy işletmegiň başga usulydyr).

Her bir derejäniň içinde aýratyn hyzmatlar işledilip bilner ýa-da işleýän bolsa ýapylyp bilner. Käbir esasy paýlamalaryň soňky wersiýalary systemd (ulgam daemonyny aňladýar) diýilýän täze hyzmat we ulgam dolandyryjysynyň peýdasyna Ulgam V standartyndan daşlaşýar, ýöne adatça utgaşyklyk maksatlary üçin sysv buýruklaryny goldaň. Diýmek, belli sysv init gurallarynyň köpüsini systemd esasly paýlamada işledip bilersiňiz.

Şeýle hem okaň : Näme üçin systemd Linux-da init -iň ýerini alýar?

Ulgam işine başlamakdan başga-da, init haýsy derejäniň girizilmelidigini kesgitlemek üçin /etc/inittab faýlyna seredýär.

Iş derejeleriniň arasynda geçmek üçin, diňe init buýrugyny ulanyp, bir derejeli üýtgeşme berip bileris: init N (bu ýerde N ýokarda görkezilen derejeleriň biri). Bu, işleýän ulgamy başga bir derejä çykarmagyň maslahat berilýän usuly däldigini ýadyňyzdan çykarmaň, sebäbi giren ulanyjylara duýduryş bermeýär (şeýlelik bilen olaryň işini ýitirmegine we adatdan daşary işlemegine sebäp bolýar).

Muňa derek, ulgamy täzeden açmak üçin ýapmak buýrugy ulanylmaly (ilki bilen ähli ulanyjylara duýduryş habary iberýär we başga girişleri bloklaýar; soňra iş derejelerini üýtgetmek üçin init signal berýär); şeýle-de bolsa, deslapky iş derejesi (ulgamyň açyljak ulgamy) ilki bilen /etc/inittab faýlynda redaktirlenmeli.

Şol sebäpli, derejeleriň arasynda dogry geçmek üçin şu ädimleri ýerine ýetiriň, kök hökmünde /etc/inittab -den aşakdaky setiri gözläň.

id:2:initdefault:

we vim ýaly islän tekst redaktoryňyz bilen islenýän iş derejesi üçin 2 belgisini üýtgediň (Linux-da vi/vim redaktoryny nädip ulanmalydygy - bu seriýanyň 2-nji bölümi).

Ondan soň kök hökmünde işlediň.

# shutdown -r now

Şol iň soňky buýrugy ulgamy täzeden açar we indiki ýükleme wagtynda görkezilen iş derejesinde başlar we /etc/rc Fotoerunlevel).d haýsy hyzmatlaryň başlamalydygyny we haýsysynyň başlamaly däldigini kesgitlemek üçin katalog. Mysal üçin, aşakdaky ulgamdaky 2-nji dereje üçin.

Bootda ulgam hyzmatlaryny işletmek ýa-da öçürmek üçin CentOS/openSUSE-de chkconfig buýrugyny we Debian we emele gelenlerde sysv-rc-conf ulanarys. Bu gural, belli bir derejeli hyzmat üçin deslapky düzülen ýagdaýy hem görkezip biler.

Şeýle hem okaň : Linux-da islenmeýän hyzmatlary nädip togtatmaly we öçürmeli

Hyzmat üçin iş derejesiniň konfigurasiýasyny görkezmek.

# chkconfig --list [service name]
# chkconfig --list postfix
# chkconfig --list mysqld

Aboveokardaky şekilde, postfiks ulgamyň 2 üsti bilen 5 üsti bilen, mysqld 4 üsti bilen 2 derejeli derejeler üçin işleýär. Indi munuň garaşylýan hereket däldigini çaklaň.

Mysal üçin, 5 derejesi üçin mysqld açmaly we 4-nji we 5-nji derejeler üçin postfiksi öçürmeli. Ine, her ýagdaýda näme ederdik kök hökmünde aşakdaky buýruklar).

# chkconfig --level [level(s)] service on
# chkconfig --level 5 mysqld on
# chkconfig --level [level(s)] service off
# chkconfig --level 45 postfix off

Indi şuňa meňzeş meseleleri sysv-rc-conf ulanyp, Debian esasly ulgamynda ýerine ýetireris.

Belli bir dereje awtomatiki usulda başlamak we beýlekilerden başlamagynyň öňüni almak üçin hyzmaty düzmek.

1. Geliň, mdadm başlamak üçin düzülen iş derejeleriniň nämedigini görmek üçin aşakdaky buýrugy ulanalyň.

# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'

2. Mdadm-iň 2 -den başga ähli derejelere başlamagynyň öňüni almak üçin sysv-rc-conf ulanarys. Diňe (boşluk çyzgysy bilen) isleýşiňiz ýaly barlaň ýa-da belläň (ok düwmeleri bilen ýokary, aşak, çepe we saga hereket edip bilersiňiz).

# sysv-rc-conf

Soňra çykmak üçin q basyň.

3. Ulgamy täzeden başlarys we 1-nji ädim -den buýrugy täzeden işlederis.

# ls -l /etc/rc[0-6].d | grep -E 'rc[0-6]|mdadm'

Aboveokardaky suratda, mdadm diňe 2 derejesinde işlemek üçin düzülendigini görüp bileris.

Systemd hakda näme?

systemd birnäçe esasy Linux paýlaýjylary tarapyndan kabul edilýän başga bir hyzmat we ulgam dolandyryjysy. Ulgam işe başlanda has köp işlemegiň paralel ýerine ýetirilmegine ýol açmagy maksat edinýär ( sysvinit -den tapawutlylykda, her gezek bir gezek işlemäge başlaýar, biriniň beýlekisine baglydygyny barlaýar we garaşýar) has köp hyzmat başlap biler ýaly daemonlar) we işleýän ulgam üçin dinamiki çeşme dolandyryşy bolup hyzmat eder.

Şeýlelik bilen, ýükleme wagtynda düýpli sebäpsiz işe başlamagyň ýerine hyzmatlar zerur bolanda (ulgam çeşmelerini sarp etmezlik üçin) başlaýar.

systemd ýerli we SysV hyzmatlary ulgamyňyzda işleýän ähli amallaryň ýagdaýyny görmek üçin aşakdaky buýrugy ýerine ýetiriň.

# systemctl

Oüklemek sütüni birlik kesgitlemesiniň (hyzmaty ýa-da systemd tarapyndan saklanylýan islendik zady görkezýän UNIT sütünine serediň) dogry ýüklenendigini, HEREKET we SUB sütünleri şeýle bölümiň häzirki ýagdaýyny görkezýär.

Haçan-da HEREKET sütüni birligiň ýagdaýynyň işjeň däldigini görkezse, nämäniň ulanylandygyny barlap bileris.

# systemctl status [unit]

Mysal üçin, ýokardaky suratda media-samba.mount şowsuz ýagdaýda. Geliň.

# systemctl status media-samba.mount

media-samba.mount baş sahypanyň dev1 daky gurnama işiniň //192.168.0.10/gacanepa -da tor paýyny tapyp bilmeýändigi sebäpli şowsuz bolandygyny görüp bileris..

Hyzmatlary başlamak ýa-da togtatmak

Tor paýy //192.168.0.10/gacanepa elýeterli bolansoň, geliň, başlalyň, soň duralyň we bölümi media-samba.mount täzeden açalyň. Her hereketi ýerine ýetirenimizden soň, ýagdaýyny barlamak üçin systemctl status media-samba.mount-y işledeliň.

# 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

systemd aşagynda bir hyzmat açylanda işledip ýa-da öçürip bilersiňiz.

# systemctl enable [service] 		# enable a service 
# systemctl disable [service] 		# prevent a service from starting at boot

Awtomatiki usulda başlamak üçin bir hyzmaty açmak ýa-da öçürmek prosesi, /etc/systemd/system/multi-user.target.wants katalogyna simwoliki baglanyşyklary goşmakdan ýa-da aýyrmakdan ybaratdyr.

Ativea-da bolmasa, buýruk bilen hyzmatyň häzirki ýagdaýyny (açyk ýa-da ýapyk) tapyp bilersiňiz.

# systemctl is-enabled [service]

Mysal üçin,

# systemctl is-enabled postfix.service

Mundan başga-da, ulgamy täzeden açyp ýa-da ýapyp bilersiňiz.

# systemctl reboot
# systemctl shutdown

Upstart

Upstart /sbin/init daemon üçin hadysalara esaslanýan çalyşma bolup, diňe hyzmatlary zerur bolanda ýüze çykýar (zerur bolanda olara gözegçilik edýär) işleýär) we hadysalary bolşy ýaly dolandyrmak, şeýlelik bilen, garaşlylyga esaslanýan sysvinit ulgamyndan öňe geçýär.

Ilkibaşda Ubuntu paýlamak üçin işlenip düzüldi, ýöne Red Hat Enterprise Linux 6.0-da ulanylýar. sysvinit çalyşmagy hökmünde ähli Linux paýlanyşlarynda ýerleşdirmek üçin niýetlenen bolsa-da, wagtyň geçmegi bilen systemd kölege saldy. 2014-nji ýylyň 14-nji fewralynda Mark Şuttlewort (Canonical Ltd.-iň esaslandyryjysy) Ubuntu-yň geljekde çykjak ulgamlarynyň başlangyç init daemon hökmünde systemd ulanjakdygyny habar berdi.

Ulgam üçin SysV başlangyç skripti şunça wagt bäri adaty bolansoň, köp sanly programma üpjünçiliginde SysV başlangyç skriptleri bar. Şeýle paketleri ýerleşdirmek üçin “Upstart” utgaşyklyk tertibini üpjün edýär: SysV başlangyç skriptlerini adaty ýerlerde işleýär ( /etc/rc.d/rc?.d , /etc/init.d/ rc? .d , /etc/rc?.d ýa-da şuňa meňzeş ýer). Şeýlelik bilen, “Upstart” konfigurasiýa skriptini öz içine almaýan bukjany gursak, ol henizem adaty ýagdaýda işlemeli.

Mundan başga-da, chkconfig ýaly kömekçi enjamlary guran bolsak, olary sysvinit esasly ulgamlarda bolşy ýaly SysV esasly hyzmatlaryňyzy dolandyrmak üçin ulanyp bilersiňiz.

Upstart skriptleri, SysV başlangyç skriptlerine garanyňda has köp dürli hereketlere esaslanýan hyzmatlary başlamagy ýa-da duruzmagy goldaýar; meselem, “Upstart” belli bir enjam enjamy birikdirilende hyzmaty başlap biler.

“Upstart” -y we onuň ýerli skriptlerini ulanýan ulgam diňe /etc/inittab faýlyny we işleýiş derejesine mahsus SysV başlangyç skript kataloglaryny .conf bilen çalyşýar. /etc/init bukjasyndaky skriptler.

Bu * .conf skriptleri (iş kesgitlemesi hem diýilýär) köplenç aşakdakylardan durýar:

    1. Amalyň beýany.
    2. Amalyň işlemeli ýerleri ýa-da oňa itergi bermeli wakalar.
    3. Amalyň togtadylmaly ýerleri ýa-da ony saklamaly wakalar.
    4. Görnüş.
    5. Amaly başlamagy buýruň.

    Mysal üçin,

    # 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
    

    Üýtgeşmeleri ulanmak üçin, konfigurasiýasyny täzeden açmak üçin ýokaryk başlamaly bolarsyňyz.

    # initctl reload-configuration
    

    Soňra aşakdaky buýrugy ýazyp işe başlaň.

    $ sudo start yourjobname
    

    Nirede siziň adyňyz ozal yourjobname.conf skripti bilen goşulan işiň ady.

    Upstart üçin has doly we jikme-jik gollanma taslamanyň web sahypasynda\Cookbook menýusynda bar.

    Gysgaça mazmun

    Linux ýüklemek prosesi barada bilmek, näsazlyklary düzetmek bilen bir hatarda kompýuteriň işleýşini we işleýiş hyzmatlaryny zerurlyklaryňyza laýyklaşdyrmak üçin zerurdyr.

    Bu makalada, doly ulanyjy interfeýsini alýançaňyz, enjamy açmak üçin Power wyklýuçatelini basanyňyzdan başlap nämeleriň bolýandygyny seljerdik. Ony bir ýere jemlänimde okamagy öwrenersiňiz diýip umyt edýärin. Teswirleriňizi ýa-da soraglaryňyzy aşakda goýup bilersiňiz. Elmydama okyjylarymyzdan eşitmäge sabyrsyzlyk bilen garaşýarys!