LFCS: Ijikwa usoro mmalite na ọrụ (SysVinit, Systemd and Upstart) - Akụkụ 7


Ọnwa ole na ole gara aga, Linux Foundation kwupụtara asambodo LFCS (Linux Foundation Certified Sysadmin), mmemme ọhụrụ na-atọ ụtọ nke ebumnuche ya bụ ikwe ka ndị mmadụ sitere na nsọtụ ụwa niile nweta asambodo n'ịrụ ọrụ nchịkwa sistemụ etiti na sistemụ Linux. Nke a gụnyere ịkwado sistemụ na ọrụ na-agba ọsọ, yana nchọta nsogbu na nyocha nke mbụ, gbakwunyere ikike ikpebi mgbe a ga-ebuli okwu na ndị otu injinia.

Vidiyo na-esote na-akọwa mmalite mmalite nke Mmemme Asambodo Linux Foundation.

Nke a bụ akụkụ 7 nke usoro nkuzi 10, ebe a na akụkụ a, anyị ga-akọwa otu esi ejikwa usoro mmalite na ọrụ Linux System, nke achọrọ maka ule asambodo LFCS.

Ijikwa usoro mmalite Linux

Usoro buut nke sistemụ Linux nwere ọtụtụ usoro, nke ọ bụla nwere akụkụ dị iche iche na-anọchi anya ya. Eserese na-esonụ na-achikota nkenke usoro buut wee gosi isi ihe niile metụtara.

Mgbe ị pịa bọtịnụ Power na igwe gị, ngwa ngwa nke echekwara na mgbawa EEPROM na motherboard na-amalite POST ( Nnwale onwe onye ike-na) iji lelee ọnọdụ akụrụngwa ngwaike nke sistemụ. Mgbe emechara POST, firmware wee chọọ wee buo Ogbo mbụ bootloader, nke dị na MBR ma ọ bụ na EFI. nkebi nke diski mbụ dị, ma na-enye njikwa ya.

MBR dị na ngalaba mbụ nke diski ahụ akara ka bootable na ntọala BIOS ma bụrụ 512 bytes n'ogo.

  1. Bytes 446 nke mbụ: Onye na-ebupụta boot nwere ma koodu arụrụ arụ yana ederede ozi njehie.
  2. 64 bytes na-esote: Tebụlụ nkebi nwere ndekọ maka nkebi anọ ọ bụla (isi ma ọ bụ ogologo). Tinyere ihe ndị ọzọ, ndekọ ọ bụla na-egosi ọkwa (ọrụ/adịghị arụ ọrụ), nha, na mmalite/njedebe nke nkebi ọ bụla.
  3. Bytes abụọ ikpeazụ: Nọmba anwansi ahụ na-eje ozi dị ka nlele nkwado nke MBR.

Iwu a na-eme nkwado ndabere nke MBR (n'ihe atụ a, /dev/sda bụ diski ike mbụ). Faịlụ sitere na mbr.bkp nwere ike ịba uru ma ọ bụrụ na tebụl nkebi emebiela, dịka ọmụmaatụ, na-eme ka sistemụ ahụ ghara ịmalite.

N'ezie, iji mee ya ma emechaa ma ọ bụrụ na ọ dị mkpa, anyị ga-echekwa ya ma chekwaa ya n'ebe ọzọ (dị ka ụgbọala USB, dịka ọmụmaatụ). Faịlụ ahụ ga-enyere anyị aka iweghachi MBR ma mee ka anyị gaa ọzọ ma ọ bụrụ naanị ma ọ bụrụ na anyị agbanweghị nhazi draịvụ ike ka ọ dị ugbu a.

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

Maka sistemu na-eji usoro EFI/UEFI, UEFI firmware na-agụ ntọala ya iji chọpụta ngwa UEFI a ga-ewepụta yana ebe (ya bụ, nke diski na nkebi ya. EFI nkebi dị).

Na-esote, a na-ejuru ma na-agba ọsọ ọkwa nke abụọ bootloader (aka boot manager). GRUB [Grand Unified Boot] bụ njikwa akpụkpọ ụkwụ a na-ejikarị na Linux. Enwere ike ịchọta otu n'ime ụdị abụọ dị iche na ọtụtụ sistemụ eji eme ihe taa.

  1. Faịlụ nhazi ihe nketa GRUB: /boot/grub/menu.lst (nkesa ochie, akwadoghị EFI/UEFI firmwares).
  2. GRUB2 faịlụ nhazi: o yikarịrị, /etc/default/grub.

Ọ bụ ezie na ebumnobi nke ule LFCS anaghị arịọ n'ụzọ doro anya ihe ọmụma gbasara GRUB internals, ọ bụrụ na ị nwere obi ike ma nwee ike mebie sistemụ gị (ị nwere ike ịnwale ya). mbụ na igwe mebere, naanị ma ọ bụrụ na), ịkwesịrị ịgba ọsọ.

# update-grub

Dị ka mgbọrọgwụ ka emegharịa nhazi GRUB iji tinye mgbanwe ndị ahụ.

N'ụzọ bụ isi, GRUB na-eburu ihe ndabara kernel yana ihe oyiyi initrd ma ọ bụ initramfs. N'okwu ole na ole, initrd ma ọ bụ initramfs na-enyere aka n'ịchọpụta ngwaike, nbudata kernel module na nchọpụta ngwaọrụ dị mkpa iji nweta ezigbo mgbọrọgwụ faịlụ.

Ozugbo ezigbo faịlụ faịlụ dị elu, kernel na-eme usoro na njikwa ọrụ (initma ọ bụ systemd, onye njirimara usoro ma ọ bụ PID bụ mgbe niile 1) ịmalite onye ọrụ nkịtị- usoro buut ohere iji weta interface onye ọrụ.

Ma init na systemd bụ daemons (usoro ndabere) na-ejikwa daemons ndị ọzọ, dị ka ọrụ mbụ ga-amalite (n'oge buut) na ọrụ ikpeazụ ga-akwụsị (n'oge mmechi).

Ọrụ mmalite (SysVinit)

Echiche nke runlevels na Linux na-akọwapụta ụzọ dị iche iche isi jiri sistemụ site na ịchịkwa ọrụ ndị na-arụ. N'ikwu ya n'ụzọ ọzọ, runlevel na-achịkwa ihe ọrụ nwere ike ịrụzu na ọnọdụ igbu oge ugbu a = runlevel (na ndị na-enweghị ike).

Na omenala, a na-eme usoro mmalite a dabere na mgbakọ ndị sitere na System V UNIX, na usoro na-agafe na-eme ihe nchịkọta nke scripts nke na-amalite ma kwụsị ọrụ ka igwe na-abanye n'otu runlevel (nke, na okwu ndị ọzọ). , bụ usoro dị iche iche nke na-agba ọsọ usoro).

N'ime runlevel nke ọ bụla, enwere ike ịtọ ọrụ onye ọ bụla ka ọ na-agba ọsọ, ma ọ bụ mechie ma ọ na-agba ọsọ. Ụdị kacha ọhụrụ nke ụfọdụ nkesa bụ isi na-apụ na ụkpụrụ System V na-akwado ọrụ ọhụrụ yana njikwa sistemu a na-akpọ systemd(nke na-anọchi anya sistemụ daemon), mana ọ na-abụkarị. nkwado sysv iwu maka ebumnuche ndakọrịta. Nke a pụtara na ị nwere ike ịgba ọsọ ọtụtụ n'ime ihe a ma ama sysv ngwaọrụ init na nkesa dabere na sistemụ.

Gụọkwa: Gịnị kpatara 'systemd' ji dochie 'init' na Linux

E wezụga ịmalite usoro sistemụ, init na-eleba anya na faịlụ /etc/inittab iji kpebie ihe runlevel ga-abanyerịrị.

Iji gbanwee n'etiti runlevels, anyị nwere ike ịnye mgbanwe runlevel site na iji iwu init: init N (ebe N bụ otu n'ime runlevel ndị edepụtara n'elu). Biko mara na nke a abụghị ụzọ akwadoro iji were sistemụ na-agba ọsọ gaa na runlevel dị iche n'ihi na ọ naghị enye ndị ọrụ abanyela aka na ntị (ya mere na-eme ka ha kwụsị ọrụ na usoro iji kwụsị n'ụzọ na-adịghị mma).

Kama nke ahụ, ekwesịrị iji iwu mechie malitegharịa sistemụ ahụ (nke na-ebu ụzọ ziga ndị ọrụ niile abanyela ozi ịdọ aka ná ntị ma gbochie nbanye ọzọ; ọ na-egosi init ka ịgbanwee runlevels); Otú ọ dị, a ga-edezi runlevel ndabara (nke usoro ahụ ga-ebuba na) na faịlụ /etc/inittab nke mbụ.

Maka nke ahụ, soro usoro ndị a ka ịgbanwee nke ọma n'etiti runlevels, Dị ka mgbọrọgwụ, chọọ ahịrị na-esonụ na /etc/inittab.

id:2:initdefault:

ma gbanwee nọmba 2 maka runlevel achọrọ ya na onye na-edezi ederede masịrị gị, dị ka vim (akọwara na Otu esi eji vi/vim editọ na Linux – Akụkụ 2 nke usoro a).

Na-esote, na-agba ọsọ dị ka mgbọrọgwụ.

# shutdown -r now

Iwu ikpeazụ ahụ ga-amalitegharị sistemụ ahụ, mee ka ọ malite na runlevel akọwapụtara n'oge buut na-esote, ma ga-agbakwa scripts dị na /etc/rc[runlevel].d > akwụkwọ ndekọ aha iji kpebie ọrụ a ga-ebido na nke ekwesịghị ịmalite. Dịka ọmụmaatụ, maka runlevel 2 na sistemụ na-esonụ.

Iji mee ka ma ọ bụ gbanyụọ ọrụ sistemụ na buut, anyị ga-eji iwu chkconfig na CentOS/openSUSE na sysv-rc-confna Debian na usoro. Ngwá ọrụ a nwekwara ike igosi anyị ihe bụ nhazi ọkwa nke ọrụ maka otu runlevel.

Gụọkwa: Otu esi akwụsị ma gbanyụọ ọrụ achọghị na Linux

Na-edepụta nhazi runlevel maka ọrụ.

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

N'ihe onyonyo a dị n'elu, anyị nwere ike ịhụ na postfix ka atọrọ ịmalite mgbe sistemụ na-abanye runlevels 2 site na 5, ebe mysqld b>ga-agba ọsọ na ndabara maka runlevels 2 ruo 4. Ugbu a were were na nke a abụghị omume a tụrụ anya ya.

Dịka ọmụmaatụ, anyị kwesịrị ịgbanwuo mysqld maka runlevel 5 nakwa, ma gbanyụọ postfix maka runlevels 4 na 5. Nke a bụ ihe anyị ga-eme na nke ọ bụla (gbaa na postfix). na-eso iwu dị ka mgbọrọgwụ).

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

Anyị ga-arụ ọrụ ndị yiri ya na sistemụ Debian dabere na iji sysv-rc-conf.

Ịhazi ọrụ ka ịmalite na-akpaghị aka na runlevel akọwapụtara ma gbochie ya ịmalite na ndị ọzọ niile.

1. Ka anyị jiri iwu na-esonụ hụ ihe runlevels ebe a na-ahazi mdadm ịmalite.

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

2. Anyị ga-eji sysv-rc-conf gbochie mdadm ịmalite na runlevel niile ma e wezụga 2. Naanị lelee ma ọ bụ wepụ (ji oghere oghere) dịka ịchọrọ (ị nwere ike iji igodo akụ bulie elu, ala, aka ekpe na aka nri).

# sysv-rc-conf

Wee pịa q ka ị kwụsị.

3. Anyị ga-amalitegharị usoro ahụ wee malite iwu ọzọ site na STEP 1.

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

Na foto dị n'elu anyị nwere ike ịhụ na a haziri mdadm ka ọ malite naanị na runlevel 2.

Kedu maka sistemụ arụmọrụ?

systemd bụ ọrụ ọzọ na njikwa sistemu nke ọtụtụ nkesa Linux na-anabata. Ọ na-achọ ikwe ka a na-emekwu nhazi n'otu oge n'oge mmalite usoro (n'adịghị ka sysvinit, nke na-emekarị ka ọ dị nwayọọ n'ihi na ọ na-amalite usoro otu n'otu oge, na-enyocha ma otu ọ dabere na nke ọzọ, ma na-echere. daemons ịmalite ka ọrụ ndị ọzọ nwee ike ịmalite), yana ije ozi dị ka njikwa akụrụngwa dị ike na sistemụ na-agba ọsọ.

Ya mere, a na-amalite ọrụ mgbe ọ dị mkpa (iji zere iji usoro ihe eji eme ihe) kama ịmalite na-enweghị ihe kpatara ya n'oge buut.

Ilele ọkwa nke usoro niile na-agba na sistemụ gị, ma systemd nke ala yana ọrụ SysV, mee iwu na-esonụ.

# systemctl

Kọlụm LOAD na-egosi ma nkọwa otu ( rụtụ aka na kọlụm UNIT, nke na-egosi ọrụ ahụ ma ọ bụ ihe ọ bụla nke sistemu na-edobere) ka ebugoro nke ọma, ebe ACTIVE na SUB kọlụm na-egosi ọnọdụ otu nkeji dị ugbu a.

Mgbe kọlụm ACTIVE na-egosi na ọkwa otu nkeji abụghị ọrụ, anyị nwere ike ịlele ihe mere site na iji.

# systemctl status [unit]

Dịka ọmụmaatụ, na onyonyo dị n'elu, media-samba.mount nọ n'ọnọdụ dara ada. Ka anyị gbaa ọsọ.

# systemctl status media-samba.mount

Anyị nwere ike ịhụ na media-samba.mount dara n'ihi na usoro mgbago na onye ọbịa dev1 enweghị ike ịhụ oke netwọkụ na //192.168.0.10/gacanepa.

Ịmalite ma ọ bụ kwụsị ọrụ

Ozugbo netwọk na-ekesa //192.168.0.10/gacanepa dị, ka anyị gbalịa ịmalite, kwụsịchaa, n'ikpeazụ malitegharịa unit media-samba.mount. Mgbe emechara omume ọ bụla, ka anyị gbaa systemctl status media-samba.mount ka ịlele ọkwa ya.

# 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

N'okpuru systemd ị nwere ike ịme ma ọ bụ gbanyụọ ọrụ mgbe ọ na-akpụ akpụ.

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

Usoro nke inye ma ọ bụ gbanyụọ ọrụ ịmalite na-akpaghị aka na buut gụnyere ịgbakwunye ma ọ bụ wepụ njikọ ihe atụ na /etc/systemd/system/multi-user.target.wants directory.

N'aka nke ọzọ, ịnwere ike iji iwu ahụ chọpụta ọnọdụ ọrụ ugbu a (enyere ma ọ bụ nwee nkwarụ).

# systemctl is-enabled [service]

Ọmụmaatụ,

# systemctl is-enabled postfix.service

Na mgbakwunye, ị nwere ike ịmalitegharị ma ọ bụ mechie sistemụ na.

# systemctl reboot
# systemctl shutdown

Bido

Upstart bụ ihe ngbanwe dabere na mmemme maka /sbin/init daemon wee mụọ ya site na mkpa ịmalite ọrụ naanị, mgbe achọrọ ha (na-elekọtakwa ha mgbe ha na-agba ọsọ), ma na-ejikwa ihe omume ka ha na-eme, si otú a na-akarị usoro sysvinit dabere na kpochapụwo.

Emebere ya na mbu maka nkesa Ubuntu, mana ejiri ya na Red Hat Enterprise Linux 6.0. N'agbanyeghị na e bu n'obi ka ọ dị mma maka ntinye na nkesa Linux niile ka ọ bụrụ nnọchi maka sysvinit, ka oge na-aga systemd kpuchiri ya. Na February 14, 2014, Mark Shuttleworth (onye guzobere Canonical Ltd.) kwupụtara na mwepụta Ubuntu n'ọdịnihu ga-eji systemd dị ka init daemon ndabara.

N'ihi na SysV edemede mmalite maka sistemụ bụ ihe a na-ahụkarị kemgbe ogologo oge, ọtụtụ ngwugwu ngwanrọ gụnyere scripts mmalite SysV. Iji nabata ngwugwu ndị dị otú ahụ, Upstart na-enye ọnọdụ ndakọrịta: Ọ na-eme scripts mmalite SysV na ebe a na-emebu (/etc/rc.d/rc?.d, /etc/init.d/ rc?.d, /etc/rc?.d, ma ọ bụ ebe yiri ya). Ya mere, ọ bụrụ na anyị wụnye ngwugwu nke na-agụnyebeghị edemede nhazi Upstart, ọ ka kwesịrị ịmalite n'ụzọ ọ na-adị.

Ọzọkwa, ọ bụrụ na anyị arụnyela akụrụngwa dị ka chkconfig, ị ga-enwe ike iji ha jikwaa ọrụ dabere na SysV dị ka anyị ga-esi na sistemụ sysvinit.

Ederede Upstart na-akwado ịmalite ma ọ bụ kwụsị ọrụ dabere na omume dịgasị iche iche karịa nke SysV mmalite script; dịka ọmụmaatụ, Upstart nwere ike ịmalite ọrụ mgbe ọ bụla etinyere otu ngwaike ngwaọrụ.

Usoro nke na-eji Upstart na scripts obodo ya na-eji .conf dochie faịlụ /etc/inittab yana runlevel-kpọmkwem SysV akwụkwọ ndekọ aha mmalite. scripts dị na ndekọ /etc/init.

Edemede *.conf (a makwaara dị ka nkọwa ọrụ) nwere ihe ndị a:

    1. Nkọwa nke usoro a.
    2. Nhazi ọkwa ebe usoro kwesịrị ịga ma ọ bụ mmemme kwesịrị ịkpalite ya.
    3. Ọkwa ọkwa ebe ekwesịrị ịkwụsị usoro ma ọ bụ mmemme kwesịrị ịkwụsị ya.
    4. Nhọrọ.
    5. Iwu ka ịmalite usoro a.

    Ọmụmaatụ,

    # 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
    

    Iji tinye mgbanwe, ị ga-achọ ịgwa upstart ka ibugharịa nhazi ya.

    # initctl reload-configuration
    

    Mgbe ahụ malite ọrụ gị site na ịpị iwu na-esonụ.

    $ sudo start yourjobname
    

    Ebe Yourjobname bụ aha ọrụ agbakwunyere na mbụ na yourjobname.conf script.

    Ntuziaka ntụaka zuru oke na nkọwa zuru ezu maka Upstart dị na webụsaịtị ọrụ a n'okpuru menu \Akwụkwọ nri.

    Nchịkọta

    Ọmụma nke usoro buut Linux dị mkpa iji nyere gị aka na ọrụ nchọpụta nsogbu yana imeghari arụmọrụ kọmputa na ọrụ na-arụ ọrụ na mkpa gị.

    N'isiokwu a, anyị enyochala ihe na-eme site na oge ị pịa Ike ịgbanwee ka ịgbanwuo igwe ruo mgbe ị nwetara interface ọrụ zuru oke. Enwere m olileanya na ị mụtala ịgụ ya dịka m gụrụ mgbe m na-etinye ya ọnụ. Enwere onwe gị ịhapụ nkwupụta ma ọ bụ ajụjụ gị n'okpuru. Anyị na-atụ anya ịnụ n'aka ndị na-agụ akwụkwọ anyị!